在给serialChart加监听时,报参数异常 。xyChart加了一样的监听,没有任何问题,而且新建一个button增加监听事件,方法也能够执行
这是xyChart的监听,运行没有问题
我这边尝试了下,没有重现这个问题,右键可以打开界面:
你的 Jmix 版本是多少,方便发一个可重现的测试项目吗?
我在点击右键后,出来的是这个,没有具体报错的命令行
jmix版本是最新的
xy图放大正常
测试项目不太好弄 没办法拿数据
嗯。我用的也是 1.4.0。上面那个错误的详情堆栈麻烦发一下?
这个是控制器
private void drawChart() {
if (mtrTskField.getValue() != null && acListField.getValue() != null && startTimeField.getValue() != null && endTimeField.getValue() != null) {
RteMtr rteMtr = rteMtrService.getRteMtrByMtrTsk(mtrTskField.getValue());
List<DrwTmp> drwTmpList = drwTmpService.getDrwTmpByRte(rteMtr);
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
String startTime = sd.format(startTimeField.getValue()) + " 00:00:00";
String endTime = sd.format(endTimeField.getValue()) + " 00:00:00";
List<String> serColList = new ArrayList<>();
if (!acListField.getValue().equals("All")) {
String serSql = "show timeseries root.oemc." + acListField.getValue().replace("-", "") + ".*.*.*.*";
serColList =monParamAccessService.getTimeSeries(serSql);
}
for (DrwTmp drwTmp : drwTmpList) {
String yXis = drwTmp.getyAxi();
String xXis = drwTmp.getxAxi();
if (drwTmp.getDatFrm().equals("OEM")) {
List<Color> colors = new ArrayList<>();
colors.add(Color.valueOf(drwTmp.getColOne()));
colors.add(Color.valueOf(drwTmp.getColTwo()));
colors.add(Color.valueOf(drwTmp.getColThr()));
colors.add(Color.valueOf(drwTmp.getColFou()));
List<Boolean> shows = new ArrayList<>();
shows.add(drwTmp.getOne());
shows.add(drwTmp.getTwo());
shows.add(drwTmp.getThree());
shows.add(drwTmp.getFour());
shows.add(drwTmp.getDif());
if (xXis.equals("Time")) {
List<String> p1List = new ArrayList<>();
List<String> p2List = new ArrayList<>();
List<String> p3List = new ArrayList<>();
List<String> p4List = new ArrayList<>();
List<String> prmList = new ArrayList<>();
for (String col : serColList
) {
String[] array = col.split("\\.");
String flyPrm =array[5]+ "-"+array[6];
if (flyPrm.equals(drwTmp.getFlyPhs()+"-"+yXis)){
prmList.add(array[3]+"."+array[4]+"."+array[5]+"."+array[6]);
}
String key = array[3] + "-" + array[5]+ "-"+array[6];
if (key.equals("P1-" + drwTmp.getFlyPhs() + "-" + yXis)) {
p1List.add(array[3]+"."+array[4]+"."+array[5]+"."+array[6]);
} else if (key.equals("P2-" + drwTmp.getFlyPhs() + "-" + yXis)) {
p2List.add(array[3]+"."+array[4]+"."+array[5]+"."+array[6]);
} else if (key.equals("P3-" + drwTmp.getFlyPhs() + "-" + yXis)) {
p3List.add(array[3]+"."+array[4]+"."+array[5]+"."+array[6]);
} else if (key.equals("P4-" + drwTmp.getFlyPhs() + "-" + yXis)) {
p4List.add(array[3]+"."+array[4]+"."+array[5]+"."+array[6]);
}
}
String sql = "";
String p1Sum = ListToString(p1List);
String p2Sum = ListToString(p2List);
String p3Sum = ListToString(p3List);
String p4Sum = ListToString(p4List);
String p1 = StringUtils.join(p1List.toArray(), ",");
String p2 = StringUtils.join(p2List.toArray(), ",");
String p3 = StringUtils.join(p3List.toArray(), ",");
String p4 = StringUtils.join(p4List.toArray(), ",");
String prm = StringUtils.join(prmList.toArray(), ",");
if (!drwTmp.getDif()) {
sql = "select " + prm + " from root.oemc." + acListField.getValue().replace("-", "")
+ " where time >= " + startTime + " and time < " + endTime;
}
if (drwTmp.getDif() && drwTmp.getOne() && drwTmp.getTwo() && !drwTmp.getThree() && !drwTmp.getFour()) {
sql = "select " + p1 + "," + p2 +",(" + p1Sum + "-" + p2Sum + ") as `P1-P2` from root.oemc." +
acListField.getValue().replace("-", "") + " where time >= " + startTime + " and time < " + endTime;
}
if (drwTmp.getDif() && !drwTmp.getOne() && !drwTmp.getTwo() && drwTmp.getThree() && drwTmp.getFour()) {
sql = "select " + p3 + "," + p4 +",(" + p3Sum + "-" + p4Sum + ") as `P3-P4` from root.oemc." +
acListField.getValue().replace("-", "") + " where time >= " + startTime + " and time < " + endTime;
}
if (drwTmp.getDif() && drwTmp.getOne() && drwTmp.getTwo() && drwTmp.getThree() && drwTmp.getFour()) {
sql = "select "+ p1 + "," + p2 + "," + p3 + "," + p4+",(" + p1Sum + "-" + p4Sum + ") as `P1-P4`, (" + p2Sum + "-" + p3Sum + ") as `P2-P3` from root.oemc." +
acListField.getValue().replace("-", "") + " where time >= " + startTime + " and time < " + endTime;
}
ListDataProvider mapList = monParamAccessService.executeQueryStatement(sql);
SerialChart serialChart = oemChaService.creatChart(drwTmp.getDrwNam() + "-" + drwTmp.getDrwNo(),
acListField.getValue().replace("-",""), drwTmp.getChaHig()+"px", drwTmp.getChaSiz(),
colors, shows, mapList, p1List, p2List, p3List, p4List);
String arn =acListField.getValue().replace("-","");
serialChart.addRightClickListener(chartRightClickEvent -> onChartClick(drwTmp.getDrwNam() + "-" + drwTmp.getDrwNo(),
arn, colors, shows, mapList, p1List, p2List, p3List, p4List));
image.add(serialChart);
} else {
List<String> xyColList = new ArrayList<>();
String sql;
List<String> acList =new ArrayList<>();
ListDataProvider mapList =new ListDataProvider();
if (acListField.getValue().equals("All")){
acList= Arrays.asList(rteMtrService.getAcLstList(mtrTskField.getValue()).split(","));
for (String arn:acList
) {
String colSql = "show timeseries root.oemc."+arn.replace("-","")+".*.*.*.*";
List<String> colList = monParamAccessService.getTimeSeries(colSql);
xyColList.addAll(colList);
sql = "select " + xXis + "," + yXis + " from root.oemc." + arn.replace("-", "")
+ ".*.*." + drwTmp.getFlyPhs() + " where time >= " + startTime + " and time < " + endTime;
ListDataProvider arnMapList = monParamAccessService.executeQueryStatement(sql);
mapList.addItems(arnMapList.getItems());
}
}else {
acList.add(acListField.getValue());
String colSql = "show timeseries root.oemc."+acListField.getValue().replace("-","")+".*.*.*.*";
xyColList = monParamAccessService.getTimeSeries(colSql);
sql = "select " + xXis + "," + yXis + " from root.oemc." + acListField.getValue().replace("-", "")
+ ".*.*." + drwTmp.getFlyPhs() + " where time >= " + startTime + " and time < " + endTime;
mapList=monParamAccessService.executeQueryStatement(sql);
}
XYChart xyChart = oemChaService.creatXYChart(drwTmp.getDrwNam() + "-" + drwTmp.getDrwNo(), drwTmp.getFlyPhs(),
xXis, yXis, drwTmp.getChaHig()+"px", drwTmp.getChaSiz(), colors, shows,mapList,xyColList,acList);
List<String> finalXyColList = new ArrayList<>(xyColList);
List<String> finalAcList = new ArrayList<>(acList);
ListDataProvider finalMapList = mapList;
xyChart.addRightClickListener(chartRightClickEvent -> onXyChartClick(drwTmp.getDrwNam() + "-" + drwTmp.getDrwNo(), drwTmp.getFlyPhs(),
xXis, yXis,colors, shows, finalMapList, finalXyColList, finalAcList));
image.add(xyChart);
}
}
}
}
}
private String ListToString(List<String> list) {
if (list.size()>0){
if (list.size()>1){
return "(" + StringUtils.join(list.toArray(), "+") + ")";
}else {
return list.get(0);
}
}else {
return null;
}
}
public void onChartClick (String id, String arn, List<Color> colors, List<Boolean> shows,
ListDataProvider mapList, List<String> p1List, List<String> p2List, List<String> p3List, List<String> p4List) {
ImageScreen imageScreen = screenBuilders.screen(this)
.withScreenClass(ImageScreen.class)
.build();
imageScreen.setSerId(id);
imageScreen.setArn(arn);
imageScreen.setHeight("500px");
imageScreen.setWidth("100%");
imageScreen.setColors(colors);
imageScreen.setShows(shows);
imageScreen.setMapList(mapList);
imageScreen.setP1List(p1List);
imageScreen.setP2List(p2List);
imageScreen.setP3List(p3List);
imageScreen.setP4List(p4List);
imageScreen.show();
}
public void onXyChartClick (String id, String flyPhs, String xXis, String yXis, List <Color> colors,
List <Boolean> shows, ListDataProvider mapList, List <String> colList,List<String> arnList){
ImageScreen imageScreen = screenBuilders.screen(this)
.withScreenClass(ImageScreen.class)
.build();
imageScreen.setXyId(id);
imageScreen.setFlyPhs(flyPhs);
imageScreen.setxXis(xXis);
imageScreen.setyXis(yXis);
imageScreen.setHeight("500px");
imageScreen.setWidth("100%");
imageScreen.setColors(colors);
imageScreen.setShows(shows);
imageScreen.setMapList(mapList);
imageScreen.setColList(colList);
imageScreen.setArnList(arnList);
imageScreen.show();
}
这个是service 图的配置
package cn.edu.hitwh.ef.hm.pm.service;
import io.jmix.charts.component.SerialChart;
import io.jmix.charts.component.XYChart;
import io.jmix.charts.model.Color;
import io.jmix.charts.model.Position;
import io.jmix.charts.model.Scrollbar;
import io.jmix.charts.model.Title;
import io.jmix.charts.model.axis.CategoryAxis;
import io.jmix.charts.model.axis.ValueAxis;
import io.jmix.charts.model.balloon.Balloon;
import io.jmix.charts.model.cursor.Cursor;
import io.jmix.charts.model.cursor.CursorPosition;
import io.jmix.charts.model.export.Export;
import io.jmix.charts.model.export.ExportPosition;
import io.jmix.charts.model.graph.BulletType;
import io.jmix.charts.model.graph.Graph;
import io.jmix.charts.model.legend.Legend;
import io.jmix.charts.model.settings.ChartTheme;
import io.jmix.charts.model.trendline.TrendLine;
import io.jmix.ui.UiComponents;
import io.jmix.ui.data.impl.ListDataProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Component
public class OemChaService {
@Autowired
private UiComponents uiComponents;
/**
* 序列图配置
*
* @param id
* @param arn
* @param height
* @param width
* @param colors
* @param shows
* @param mapList
* @param p1List
* @param p2List
* @param p3List
* @param p4List
* @return SerialChart
*/
public SerialChart creatChart(String id, String arn,String height, String width, List<Color> colors, List<Boolean> shows,
ListDataProvider mapList, List<String> p1List, List<String> p2List, List<String> p3List, List<String> p4List) {
SerialChart serialChart = uiComponents.create(SerialChart.NAME);
serialChart.setId(id);
serialChart.setAutoMarginOffset(20);
serialChart.setHeight(height);
serialChart.setWidth(width);
serialChart.setCategoryField("Time");
serialChart.setDataProvider(mapList);
serialChart.setMarginLeft(40);
serialChart.setMarginRight(40);
serialChart.setTheme(ChartTheme.LIGHT);
Balloon balloon = new Balloon();
balloon.setBorderThickness(1);
balloon.setShadowAlpha(0.1);
List<ValueAxis> valueAxes = new ArrayList<>();
ValueAxis valueAxis1 = new ValueAxis();
valueAxis1.setId("v1"+id);
valueAxis1.setAxisAlpha(0.0);
valueAxis1.setIgnoreAxisWidth(true);
valueAxis1.setPosition(Position.LEFT);
valueAxes.add(valueAxis1);
ValueAxis valueAxis2 = new ValueAxis();
valueAxis2.setId("v2"+id);
valueAxis2.setAxisAlpha(0.0);
valueAxis2.setIgnoreAxisWidth(true);
valueAxis2.setPosition(Position.RIGHT);
valueAxes.add(valueAxis2);
List<Graph> graphs = new ArrayList<>();
if (shows.get(0)) {
//map中的表头名称List
for (int i = 0; i < p1List.size(); i++) {
Graph graph = new Graph();
String value = "root.oemc."+arn+"."+p1List.get(i);
graph.setId("g" + id + "P1" + i);
graph.setBalloonText("P1:[[value]]");
setGragh(id, p1List, i, graph, value);
graph.setLineColor(colors.get(0));
Balloon balloon1 = new Balloon();
balloon1.setAdjustBorderColor(false);
balloon1.setColor(Color.WHITE);
balloon1.setDrop(true);
graph.setBalloon(balloon1);
graphs.add(graph);
}
}
if (shows.get(1)) {
for (int i = 0; i < p2List.size(); i++) {
Graph graph = new Graph();
String value = "root.oemc."+arn+"."+p2List.get(i);
graph.setId("g" + id + "P2" + i);
graph.setBalloonText("P2:[[value]]");
setGragh(id, p1List, i, graph, value);
graph.setLineColor(colors.get(1));
Balloon balloon1 = new Balloon();
balloon1.setAdjustBorderColor(false);
balloon1.setColor(Color.WHITE);
balloon1.setDrop(true);
graph.setBalloon(balloon1);
graphs.add(graph);
}
}
if (shows.get(2)) {
for (int i = 0; i < p3List.size(); i++) {
Graph graph = new Graph();
graph.setId("g" + id + "P3" + i);
String value = "root.oemc."+arn+"."+p3List.get(i);
graph.setBalloonText("P3:[[value]]");
setGragh(id, p1List, i, graph, value);
graph.setLineColor(colors.get(2));
Balloon balloon1 = new Balloon();
balloon1.setAdjustBorderColor(false);
balloon1.setColor(Color.WHITE);
balloon1.setDrop(true);
graph.setBalloon(balloon1);
graphs.add(graph);
}
}
if (shows.get(3)) {
for (int i = 0; i < p4List.size(); i++) {
Graph graph = new Graph();
graph.setId("g" + id + "P4" + i);
String value = "root.oemc."+arn+"."+p4List.get(i);
graph.setBalloonText("P4:[[value]]");
setGragh(id, p1List, i, graph, value);
graph.setLineColor(colors.get(3));
Balloon balloon1 = new Balloon();
balloon1.setAdjustBorderColor(false);
balloon1.setColor(Color.WHITE);
balloon1.setDrop(true);
graph.setBalloon(balloon1);
graphs.add(graph);
}
}
if (shows.get(4)) {
if (shows.get(0) && shows.get(1) && !shows.get(2) && !shows.get(3)) {
Graph graph = new Graph();
graph.setId("g" + id + "P1-P2");
String value = "P1-P2";
graph.setBalloonText("P1-P2:[[value]]");
setDifGragh(id, graphs, graph, value);
}
if (!shows.get(0) && !shows.get(1) && shows.get(2) && shows.get(3)) {
Graph graph = new Graph();
graph.setId("g" + id + "P3-P4");
String value = "P3-P4";
graph.setBalloonText("P3-P4:[[value]]");
setDifGragh(id, graphs, graph, value);
}
if (shows.get(0) && shows.get(1) && shows.get(2) && shows.get(3)) {
Graph graph1 = new Graph();
graph1.setId("g" + id + "P1-P4");
String value1 = "P1-P4";
graph1.setBalloonText("P1-P4:[[value]]");
setDifGragh(id, graphs, graph1, value1);
Graph graph2 = new Graph();
graph2.setId("g" + id + "P2-P3");
String value2 = "P2-P3";
graph2.setBalloonText("P2-P3:[[value]]");
setDifGragh(id, graphs, graph2, value2);
}
}
Legend legend = new Legend();
legend.setUseGraphSettings(true);
CategoryAxis categoryAxis = new CategoryAxis();
categoryAxis.setDashLength(1);
categoryAxis.setMinorGridEnabled(true);
categoryAxis.setLabelFrequency(4.0);
Cursor chartCursor = new Cursor();
chartCursor.setCursorAlpha(1.0);
chartCursor.setCursorColor(Color.valueOf("#258cbb"));
chartCursor.setCursorPosition(CursorPosition.MOUSE);
chartCursor.setPan(true);
chartCursor.setValueLineAlpha(0.0);
chartCursor.setValueBalloonsEnabled(true);
chartCursor.setValueLineEnabled(true);
chartCursor.setValueZoomable(true);
Export export = new Export();
export.setPosition(ExportPosition.TOP_RIGHT);
List<Title> titles =setTitles(id);
Scrollbar chartScrollbar = new Scrollbar();
serialChart.setValueAxes(valueAxes);
serialChart.setBalloon(balloon);
serialChart.setGraphs(graphs);
serialChart.setLegend(legend);
serialChart.setCategoryAxis(categoryAxis);
serialChart.setChartCursor(chartCursor);
serialChart.setExport(export);
serialChart.setTitles(titles);
serialChart.setChartScrollbar(chartScrollbar);
return serialChart;
}
public void setDifGragh(String id, List<Graph> graphs, Graph graph, String value) {
graph.setBullet(BulletType.ROUND);
graph.setBulletBorderAlpha(0.5);
graph.setBulletColor(Color.WHITE);
graph.setBulletSize(1);
graph.setHideBulletsCount(50);
graph.setLineThickness(2);
graph.setTitle(value);
graph.setUseLineColorForBulletBorder(true);
graph.setValueAxis("v2"+id);
graph.setValueField(value);
Balloon balloon1 = new Balloon();
balloon1.setAdjustBorderColor(false);
balloon1.setColor(Color.WHITE);
balloon1.setDrop(true);
graph.setBalloon(balloon1);
graphs.add(graph);
}
public void setGragh(String id, List<String> p1List, int i, Graph graph, String value) {
graph.setBullet(BulletType.ROUND);
graph.setBulletBorderAlpha(0.5);
graph.setBulletColor(Color.WHITE);
graph.setBulletSize(1);
graph.setHideBulletsCount(50);
graph.setLineThickness(2);
graph.setTitle(p1List.get(i).substring(1).replace(".E","."));
graph.setUseLineColorForBulletBorder(true);
graph.setValueAxis("v1"+id);
graph.setValueField(value);
}
/**
* XY散点图配置
* @param id
* @param flyPhs
* @param xXis
* @param yXis
* @param height
* @param width
* @param colors
* @param shows
* @param mapList
* @param colList
* @return XYChart
*/
public XYChart creatXYChart (String id, String flyPhs, String xXis, String yXis, String height, String
width, List < Color > colors, List < Boolean > shows, ListDataProvider mapList, List < String > colList ,List < String >arnList){
XYChart xyChart = uiComponents.create(XYChart.NAME);
xyChart.setId(id);
xyChart.setAutoMarginOffset(20);
xyChart.setHeight(height);
xyChart.setWidth(width);
xyChart.setStartDuration(0.0);
xyChart.setDataProvider(mapList);
xyChart.setMarginBottom(60);
xyChart.setMarginLeft(64);
xyChart.setTheme(ChartTheme.LIGHT);
List<Graph> graphs = new ArrayList<>();
List<TrendLine> trendLines = new ArrayList<>();
if (shows.get(0)) {
List<String> keyList = new ArrayList<>();
List<String> valueList = new ArrayList<>();
for (String col : colList
) {
String[] array = col.split("\\.");
String srtPath = array[2]+"-" + array[3] + "-" + array[5]+ "-" + array[6];
for (String arn:arnList
) {
if (srtPath.equals(arn.replace("-","") + "-" + "P1-" + flyPhs + "-" + xXis)) {
keyList.add(col);
} else if (srtPath.equals(arn.replace("-","") + "-" + "P1-" + flyPhs + "-" + yXis)) {
valueList.add(col);
}
}
}
for (String key:keyList
) {
for (String value:valueList
) {
String[] array1 = key.split("\\.");
String[] array2 = value.split("\\.");
if (array1[2].equals(array2[2])){
Graph graph = new Graph();
graph.setBalloonText("P1x:[[x]] P1y:[[y]] [[Time]] "+ array1[2]);
graph.setBullet(BulletType.TRIANGLE_UP);
graph.setFillAlphas(0.0);
graph.setLineAlpha(0.0);
graph.setLineColor(colors.get(0));
graph.setTitle("P1"+ "-"+array1[2]);
graph.setXField(key);
graph.setYField(value);
graph.setValueField("Time");
graphs.add(graph);
TrendLine trendLine = new TrendLine();
trendLine.setLineColor(colors.get(0));
trendLines.add(trendLine);
}
}
}
}
if (shows.get(1)) {
List<String> keyList = new ArrayList<>();
List<String> valueList = new ArrayList<>();
for (String col : colList
) {
String[] array = col.split("\\.");
String srtPath = array[2]+"-" + array[3] + "-" + array[5]+ "-" + array[6];
for (String arn:arnList
) {
if (srtPath.equals(arn.replace("-","") + "-" + "P2-" + flyPhs + "-" + xXis)) {
keyList.add(col);
} else if (srtPath.equals(arn.replace("-","") + "-" + "P2-" + flyPhs + "-" + yXis)) {
valueList.add(col);
}
}
}
for (String key:keyList
) {
for (String value:valueList
) {
String[] array1 = key.split("\\.");
String[] array2 = value.split("\\.");
if (array1[2].equals(array2[2])){
Graph graph = new Graph();
graph.setBalloonText("P2x:[[x]] P2y:[[y]] [[Time]] "+ array1[2]);
graph.setBullet(BulletType.ROUND);
graph.setFillAlphas(0.0);
graph.setLineAlpha(0.0);
graph.setLineColor(colors.get(1));
graph.setTitle("P2"+"-"+array1[2]);
graph.setXField(key);
graph.setYField(value);
graph.setValueField("Time");
graphs.add(graph);
TrendLine trendLine = new TrendLine();
trendLine.setLineColor(colors.get(1));
trendLines.add(trendLine);
}
}
}
}
if (shows.get(2)) {
List<String> keyList = new ArrayList<>();
List<String> valueList = new ArrayList<>();
for (String col : colList
) {
String[] array = col.split("\\.");
String srtPath = array[2]+"-" + array[3] + "-" + array[5]+ "-" + array[6];
for (String arn:arnList
) {
if (srtPath.equals(arn.replace("-","") + "-" + "P3-" + flyPhs + "-" + xXis)) {
keyList.add(col);
} else if (srtPath.equals(arn.replace("-","") + "-" + "P3-" + flyPhs + "-" + yXis)) {
valueList.add(col);
}
}
}
for (String key:keyList
) {
for (String value:valueList
) {
String[] array1 = key.split("\\.");
String[] array2 = value.split("\\.");
if (array1[2].equals(array2[2])){
Graph graph = new Graph();
graph.setBalloonText("P3x:[[x]] P3y:[[y]] [[Time]] "+ array1[2]);
graph.setBullet(BulletType.TRIANGLE_UP);
graph.setFillAlphas(0.0);
graph.setLineAlpha(0.0);
graph.setLineColor(colors.get(2));
graph.setTitle("P3"+"-"+array1[2]);
graph.setXField(key);
graph.setYField(value);
graph.setValueField("Time");
graphs.add(graph);
TrendLine trendLine = new TrendLine();
trendLine.setLineColor(colors.get(2));
trendLines.add(trendLine);
}
}
}
}
if (shows.get(3)) {
List<String> keyList = new ArrayList<>();
List<String> valueList = new ArrayList<>();
for (String col : colList
) {
String[] array = col.split("\\.");
String srtPath = array[2]+"-" + array[3] + "-" + array[5]+ "-" + array[6];
for (String arn:arnList
) {
if (srtPath.equals(arn.replace("-","") + "-" + "P4-" + flyPhs + "-" + xXis)) {
keyList.add(col);
} else if (srtPath.equals(arn.replace("-","") + "-" + "P4-" + flyPhs + "-" + yXis)) {
valueList.add(col);
}
}
}
for (String key:keyList
) {
for (String value:valueList
) {
String[] array1 = key.split("\\.");
String[] array2 = value.split("\\.");
if (array1[2].equals(array2[2])){
Graph graph = new Graph();
graph.setBalloonText("P4x:[[x]] P4y:[[y]] [[Time]] "+ "-"+array1[2]);
graph.setBullet(BulletType.ROUND);
graph.setFillAlphas(0.0);
graph.setLineAlpha(0.0);
graph.setLineColor(colors.get(3));
graph.setTitle("P4"+"-"+array1[2]);
graph.setXField(key);
graph.setYField(value);
graph.setValueField("Time");
graphs.add(graph);
TrendLine trendLine = new TrendLine();
trendLine.setLineColor(colors.get(3));
trendLines.add(trendLine);
}
}
}
}
List<ValueAxis> valueAxes = new ArrayList<>();
ValueAxis valueAxis1 = new ValueAxis();
valueAxis1.setAxisAlpha(0.0);
valueAxis1.setDashLength(1);
valueAxis1.setPosition(Position.BOTTOM);
valueAxis1.setTitle(xXis);
valueAxes.add(valueAxis1);
ValueAxis valueAxis2 = new ValueAxis();
valueAxis2.setAxisAlpha(0.0);
valueAxis2.setDashLength(1);
valueAxis2.setPosition(Position.LEFT);
valueAxis2.setTitle(yXis);
valueAxes.add(valueAxis2);
Cursor cursor = new Cursor();
Export export = new Export();
export.setPosition(ExportPosition.TOP_RIGHT);
Scrollbar scrollbar = new Scrollbar();
Legend legend = new Legend();
legend.setUseGraphSettings(true);
Balloon balloon = new Balloon();
balloon.setBorderThickness(1);
balloon.setShadowAlpha(0.1);
List<Title> titles = setTitles(id);
xyChart.setExport(export);
xyChart.setChartScrollbar(scrollbar);
xyChart.setGraphs(graphs);
xyChart.setTrendLines(trendLines);
xyChart.setChartCursor(cursor);
xyChart.setValueAxes(valueAxes);
xyChart.setLegend(legend);
xyChart.setTitles(titles);
xyChart.setBalloon(balloon);
return xyChart;
}
public List<Title> setTitles(String id) {
List<Title> titles = new ArrayList<>();
Title title = new Title();
title.setAlpha(1.0);
title.setBold(true);
title.setColor(Color.DARKGRAY);
title.setSize(10);
title.setTabIndex(0);
title.setText(id);
titles.add(title);
return titles;
}
}
这个图里面的详细堆栈复制一下,谢谢!
java.lang.IllegalArgumentException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:153)
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:115)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:442)
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:407)
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:275)
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:83)
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1636)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:465)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at io.jmix.core.impl.logging.LogMdcFilter.doFilterInternal(LogMdcFilter.java:28)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:106)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:97)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:147)
at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:125)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)
是在开发环境吗,IDEA 里面的日志看看有别的错没有?上面这个错应该不是主要的问题。
怀疑是有个什么参数是 null
了
2022-11-08 15:34:28.484 ERROR 8068 --- [nio-8443-exec-6] i.j.u.exception.DefaultExceptionHandler : Unhandled exception
com.vaadin.server.ServerRpcManager$RpcInvocationException: Unable to invoke method onChartRightClick in io.jmix.charts.widget.client.amcharts.rpc.JmixAmchartsServerRpc
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:157) ~[vaadin-server-8.14.3-0-jmix.jar:8.14.3-0-jmix]
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:115) ~[vaadin-server-8.14.3-0-jmix.jar:8.14.3-0-jmix]
at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:442) ~[vaadin-server-8.14.3-0-jmix.jar:8.14.3-0-jmix]
at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:407) ~[vaadin-server-8.14.3-0-jmix.jar:8.14.3-0-jmix]
at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:275) ~[vaadin-server-8.14.3-0-jmix.jar:8.14.3-0-jmix]
at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:83) ~[vaadin-server-8.14.3-0-jmix.jar:8.14.3-0-jmix]
at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40) ~[vaadin-server-8.14.3-0-jmix.jar:8.14.3-0-jmix]
at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1636) ~[vaadin-server-8.14.3-0-jmix.jar:8.14.3-0-jmix]
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:465) ~[vaadin-server-8.14.3-0-jmix.jar:8.14.3-0-jmix]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:750) ~[javax.servlet-api-4.0.1.jar:4.0.1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.65.jar:9.0.65]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at io.jmix.core.impl.logging.LogMdcFilter.doFilterInternal(LogMdcFilter.java:28) ~[jmix-core-1.4.0.jar:na]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:106) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:97) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:147) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:125) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.7.3.jar:5.7.3]
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.23.jar:5.3.23]
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.23.jar:5.3.23]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.23.jar:5.3.23]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.23.jar:5.3.23]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.23.jar:5.3.23]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.65.jar:9.0.65]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
Caused by: java.lang.IllegalArgumentException: null
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:153) ~[vaadin-server-8.14.3-0-jmix.jar:8.14.3-0-jmix]
... 90 common frames omitted
画图用的也是这些参数 图能出来的话 这些参数应该都不是null,只是把这些参数传到了另一个界面 再画一张图
从 idea 的日志看,是调用下面这个方法有问题:
可以尝试在下面代码处打断点调试一下,看看下面第一个参数是不是 null:
没有信息
能停到这个断点应该有信息呀,在评估表达式那里输入 JmixAmchartsScene.this
试试