Java 如何在Neo4j3中调试非托管服务器扩展

Java 如何在Neo4j3中调试非托管服务器扩展,java,neo4j,Java,Neo4j,如何调试Neo4j 3中的非托管服务器扩展 我有一个相当复杂的插件,我正在从Neo4j 2迁移到Neo4j 3 当我将插件添加到plugin文件夹并在几秒钟后启动Neo4j时,我看到一条消息 启动Neo4j失败:org.Neo4j.server.web.NeoServletContainer-20bef39e@312b9bee==org.neo4j.server.web.NeoServletContainer,-1,false 我看到的日志与实际工作的示例扩展大致相同。你可以在这里看到日志 有什

如何调试Neo4j 3中的非托管服务器扩展

我有一个相当复杂的插件,我正在从Neo4j 2迁移到Neo4j 3

当我将插件添加到plugin文件夹并在几秒钟后启动Neo4j时,我看到一条消息

启动Neo4j失败:org.Neo4j.server.web.NeoServletContainer-20bef39e@312b9bee==org.neo4j.server.web.NeoServletContainer,-1,false

我看到的日志与实际工作的示例扩展大致相同。你可以在这里看到日志

有什么窍门吗?

有\o/

那么,让我们深入了解一下:Neo4j只是一个大的Java应用程序

配方:

  • 将neo4j线束添加到项目中
  • 配置进程中的Neo4j服务器
  • 在那里添加您的分机
  • 开始一切
  • 在此之后,您可以将扩展和Neo4j本身作为标准Java应用程序进行调试

    链接:

    • (这是针对2.2.5的,但想法仍然是一样的)
    • (可能你对课堂感兴趣)
    我将从这里复制文档中的代码示例,以便将所有信息放在一个地方:

    serverControls = TestServerBuilders.newInProcessBuilder()
                .withExtension(EXTENSION_MOUNT_POINT, ResourcesRootMarker.class)
                .newServer();
    // EXTENSION_MOUNT_POINT - where to mount your extension, e.g. - "/myextension"
    // ResourcesRootMarker.class - this class is located in the same package with JAX-RS resources
    
    对!\o/

    那么,让我们深入了解一下:Neo4j只是一个大的Java应用程序

    配方:

  • 将neo4j线束添加到项目中
  • 配置进程中的Neo4j服务器
  • 在那里添加您的分机
  • 开始一切
  • 在此之后,您可以将扩展和Neo4j本身作为标准Java应用程序进行调试

    链接:

    • (这是针对2.2.5的,但想法仍然是一样的)
    • (可能你对课堂感兴趣)
    我将从这里复制文档中的代码示例,以便将所有信息放在一个地方:

    serverControls = TestServerBuilders.newInProcessBuilder()
                .withExtension(EXTENSION_MOUNT_POINT, ResourcesRootMarker.class)
                .newServer();
    // EXTENSION_MOUNT_POINT - where to mount your extension, e.g. - "/myextension"
    // ResourcesRootMarker.class - this class is located in the same package with JAX-RS resources
    

    FylmTM的回答让我感动

    另一件值得注意的事情是,出于某种原因(至少在我的版本中),neo4j.log文件位于此位置

    ~/Library/Application\Support/Neo4j\Community\Edition/logs/Neo4j.log


    其他日志都在日志目录中。

    FylmTM的回答让我动了起来

    另一件值得注意的事情是,出于某种原因(至少在我的版本中),neo4j.log文件位于此位置

    ~/Library/Application\Support/Neo4j\Community\Edition/logs/Neo4j.log


    与日志目录中的其他日志一样,

    这非常有用,并帮助我解决了一些潜在的未来问题,但实际上我还没有从提问时的位置前进。我的扩展已在线束中正确设置,但当我部署到实际服务器时,我会看到相同的错误消息,并且日志或部署调试方法上没有其他错误消息,我可以尝试。因此,为了澄清这一点,我无法看到来自我自己扩展的日志,因为部署过程失败。@zode64-尝试为Neo4j启用“调试”级别的日志记录,并查看它是否可以显示有意义的内容。此外,探索您的扩展“Maven依赖树”。也许扩展中的某些依赖项现在与Neo4j依赖项冲突。你可以用maven自己做,或者使用IntelliJ。你是如何做到的?我在扩展中配置了要调试的logback,但它并没有达到在扩展部署完成之前实际开始生成输出的程度。这非常有用,并帮助我解决了一些潜在的未来问题,但实际上我还没有从原来的位置取得进展当我问这个问题时。我的扩展已在线束中正确设置,但当我部署到实际服务器时,我会看到相同的错误消息,并且日志或部署调试方法上没有其他错误消息,我可以尝试。因此,为了澄清这一点,我无法看到来自我自己扩展的日志,因为部署过程失败。@zode64-尝试为Neo4j启用“调试”级别的日志记录,并查看它是否可以显示有意义的内容。此外,探索您的扩展“Maven依赖树”。也许扩展中的某些依赖项现在与Neo4j依赖项冲突。您可以使用maven本身,也可以使用IntelliJ。您是如何做到的?我已经在扩展中配置了要调试的logback,但它并没有达到在扩展部署完成之前实际开始生成输出的程度。