Java 使用toolkit:NullPointerException将图形流式传输到Gephi

Java 使用toolkit:NullPointerException将图形流式传输到Gephi,java,graph,toolkit,gephi,graphstream,Java,Graph,Toolkit,Gephi,Graphstream,我正在尝试创建一个普通图,并使用Gephi工具包将其流式传输到Gephi GUI。我正在学习工具包和流媒体插件教程。 我很难让代码正常工作,因为查找API没有返回有效值。在调试时,我发现下面的两个查找方法都返回空值,因此我无法使用这些对象访问其他方法 StreamingServer server=Lookup.getDefault.lookupStreamingServer.class ServerControllerFactory controllerFactory=Lookup.getDef

我正在尝试创建一个普通图,并使用Gephi工具包将其流式传输到Gephi GUI。我正在学习工具包和流媒体插件教程。 我很难让代码正常工作,因为查找API没有返回有效值。在调试时,我发现下面的两个查找方法都返回空值,因此我无法使用这些对象访问其他方法

StreamingServer server=Lookup.getDefault.lookupStreamingServer.class

ServerControllerFactory controllerFactory=Lookup.getDefault.lookupServerControllerFactory.class

由于“server”或“controllerFactory”都为null,因此使用“server”或“controllerFactory”对象访问任何方法都会引发NullPointerException。例如,在:

ServerController=controllerFactory.createServerControllergraph; server.registerserverController,上下文

这是我的代码:

//Init a project - and therefore a workspace
    ProjectController pc = Lookup.getDefault().lookup(ProjectController.class);
    pc.newProject();
    Workspace workspace = pc.getCurrentWorkspace();

    // Get the graph instance
    GraphController graphController = Lookup.getDefault().lookup(GraphController.class);
    GraphModel graphModel = graphController.getModel();
    Graph graph = graphModel.getGraph();

    //Add sample graph structure data
       Node n1;
       Node n2;
       n1 = graphModel.factory().newNode();
       n2 = graphModel.factory().newNode();
       Edge edge = graphModel.factory().newEdge(n1, n2);

       graph.addNode(n1);
       graph.addNode(n2);
       graph.addEdge(edge);

       n1.getNodeData().setLabel("Node 1");
       n2.getNodeData().setLabel("Node 2");
       edge.getEdgeData().setLabel("Edge 1");

       System.out.println(graph.getNodeCount() + " nodes");
       System.out.println(graph.getEdgeCount() + " edges");
       System.out.println();


    StreamingServer server = Lookup.getDefault().lookup(StreamingServer.class);

    ServerControllerFactory controllerFactory = Lookup.getDefault().lookup(ServerControllerFactory.class);
    ServerController serverController = controllerFactory.createServerController(graph);

    String context = "/mycontext";
    server.register(serverController, context);
解决这个问题的任何输入都会很有帮助。

如果gephi工具包的META inf/services文件夹不可访问,则可能发生这种情况;e、 g.当您合并罐子时;当您尝试进行服务器端部署时,尤其常见


p、 类文件在那里;所以没有类未找到异常被抛出;但服务无法定位;有关更多信息,请参见

我正在使用org.openide.util.Lookup的Lookup.getDefault.Lookup来查找对象实例。一般的模式是传递一个类对象并返回该类的实例或null。由于未找到任何istances,因此为每个“服务器”、“控制器工厂”、“控制器”返回null。我需要处理这种情况。但是,从工具箱中查找类可以很好地工作。ProjectController pc=Lookup.getDefault.lookupProjectController.class;GraphController GraphController=Lookup.getDefault.lookupGraphController.class我正在Eclipse中运行我的项目,并参考了API在构建路径中添加org-gephi-streaming-server.jar和org-gephi-streaming-API.jar文件的过程。