【问题标题】:Error starting neo4j 2.2.3 on Ubuntu 14.04在 Ubuntu 14.04 上启动 neo4j 2.2.3 时出错
【发布时间】:2015-08-09 09:18:35
【问题描述】:

我已经从 PPA 安装了 neo4j 2.2.3 版(按照此处的说明:http://debian.neo4j.org/)并更改了对打开文件的系统限制(按照此处的说明:neo4j and max open files 以及其他地方)。

唉,启动失败。我已打开 FINEST 日志记录并在 /var/lib/neo4j/data/graph.db/messages.log 中收到以下错误

2015-08-09 08:44:56.954+0000 ERROR [org.neo4j]: Failed to start Neo Server on port [7474] Starting Neo4j Server failed: org.slf4j.helpers.MessageFormatter.arrayFormat(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;
org.neo4j.server.ServerStartupException: Starting Neo4j Server failed: org.slf4j.helpers.MessageFormatter.arrayFormat(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;
        at org.neo4j.server.AbstractNeoServer.start(AbstractNeoServer.java:258)
        at org.neo4j.server.Bootstrapper.start(Bootstrapper.java:117)
        at org.neo4j.server.Bootstrapper.main(Bootstrapper.java:69)
Caused by: java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.arrayFormat(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;
        at org.eclipse.jetty.util.log.JettyAwareLogger.log(JettyAwareLogger.java:619)
        at org.eclipse.jetty.util.log.JettyAwareLogger.info(JettyAwareLogger.java:314)
        at org.eclipse.jetty.util.log.Slf4jLog.info(Slf4jLog.java:74)
        at org.eclipse.jetty.util.log.Log.initialized(Log.java:188)
        at org.eclipse.jetty.util.log.Log.getLogger(Log.java:290)
        at org.eclipse.jetty.util.log.Log.getLogger(Log.java:280)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.(AbstractLifeCycle.java:35)
        at org.neo4j.server.web.Jetty9WebServer.createQueuedThreadPool(Jetty9WebServer.java:191)
        at org.neo4j.server.web.Jetty9WebServer.start(Jetty9WebServer.java:152)
        at org.neo4j.server.AbstractNeoServer.startWebServer(AbstractNeoServer.java:474)
        at org.neo4j.server.AbstractNeoServer.start(AbstractNeoServer.java:230)
        ... 2 more

好像少了什么?

【问题讨论】:

  • 刚刚在本地尝试过 - 在我的机器上运行良好。我猜你的类路径上有一个错误(或多个)版本的 slf4j。 `grep slf4j /var/lib/neo4j/data/graph.db/messages.log` 的输出是什么?
  • 啊哈。成功!在基本 Java 路径中还有另一个 slf4j 库。我不知道它为什么在那里,因为 dpkg -S 没有显示它属于任何东西。我会更新我自己问题的答案。我是新来这里发帖的,所以对于奇怪的格式等表示歉意。

标签: java neo4j


【解决方案1】:

问题在于/usr/java/packages/lib/ext 中的另一个slf4j 库。多亏了@stefan-ambruster 的建议才找到它。

2015-08-09 23:39:46.655+0000 ERROR [org.neo4j]: Failed to start Neo Server on port [7474] Starting Neo4j Server failed: org.slf4j.helpers.MessageFormatter.arrayFormat(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;
org.neo4j.server.ServerStartupException: Starting Neo4j Server failed: org.slf4j.helpers.MessageFormatter.arrayFormat(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;
Caused by: java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.arrayFormat(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;
     [loader.1] file:/usr/java/packages/lib/ext/slf4j-api-1.5.8.jar
     [classpath + loader.0] file:/usr/share/neo4j/system/lib/slf4j-api-1.7.7.jar
     [loader.1] file:/usr/java/packages/lib/ext/slf4j-log4j12-1.5.8.jar
     [classpath + loader.0] file:/usr/share/neo4j/system/lib/jcl-over-slf4j-1.7.7.jar
2015-08-09 23:41:20.075+0000 ERROR [org.neo4j]: Failed to start Neo Server on port [7474] Starting Neo4j Server failed: org.slf4j.helpers.MessageFormatter.arrayFormat(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;
org.neo4j.server.ServerStartupException: Starting Neo4j Server failed: org.slf4j.helpers.MessageFormatter.arrayFormat(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;
Caused by: java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.arrayFormat(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;

slf4j 似乎对版本非常敏感,因此请注意主系统版本与 neo4j 想要的版本不同。

我从/usr/java/packages/lib/ext 中删除了旧的slf4j 库,neo4j 现在按预期启动。

嘘!

【讨论】:

    最近更新 更多