我能够很好地运行演示并在单元测试中构建一个图形生成器,但是现在当我将其部署并在本地服务器上运行时,我会在部分但并非全部调用的查询中获得NullPointerExceptions。
ProjectController pc = Lookup.getDefault().lookup(ProjectController.class);
pc.newProject();
workspace = pc.getCurrentWorkspace();
GraphController gc = Lookup.getDefault().lookup(GraphController.class);
GraphModel model = gc.getModel();
堆栈跟踪如下:
Caused by: java.lang.NullPointerException
at com.network.manager.impl.NetworkLayoutManagerImpl.initGraphModel(NetworkLayoutManagerImpl.java:167)
at com.network.manager.impl.NetworkLayoutManagerImpl.convertNetworkToGraph(NetworkLayoutManagerImpl.java:49)
at com.network.manager.impl.NetworkChartManagerImpl.buildNetworkGEXF(NetworkChartManagerImpl.java:61)
at com.network.controller.LoadNetworkControllerImpl.loadNodesAndEdges(LoadNetworkControllerImpl.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:328)
at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:341)
at org.jboss.el.parser.AstPropertySuffix.invoke(AstPropertySuffix.java:58)
at org.jboss.el.parser.AstValue.invoke(AstValue.java:96)
at org.jboss.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
... 139 more
我的GraphController“ gc”在这种情况下为null,但是,我能够毫无问题地查找ProjectController。出于好奇,我添加了我需要的其他控制器(AttributeController和ExportController)并打印出来。
(ProjectController--GraphController--AttributeController--ExportController)
System.err.println(pc + " --- " + gc + " --- " + ac + " --- " + ec);
给我以下内容:
org.gephi.project.impl.ProjectControllerImpl@1b819521 --- null --- null --- org.gephi.io.exporter.impl.ExportControllerImpl@3412470a
我对Lookup API不太熟悉,所以这是一个完全的谜。我正在Tomcat服务器上运行它。让我知道是否需要更多信息。
在这里和gephi论坛上也有类似的问题,但没有任何回应。
Streaming Graph to Gephi using toolkit : NullPointerException
https://forum.gephi.org/viewtopic.php?t=1599
最佳答案
查找取决于找到的META-INF/services
文件。看来Tomcat找不到GraphController和AttributeController的东西。应该有与在源文件中导入GraphController和AttributeController的方式相似的文件。