使用Logback.xml播放2.1和Neo4J包装服务器错误

使用Logback.xml播放2.1和Neo4J包装服务器错误,neo4j,slf4j,logback,playframework-2.1,Neo4j,Slf4j,Logback,Playframework 2.1,我有一个嵌入式neo4j服务器,它的管理控制台在Play 2.0.1应用程序中工作。我最近升级到与DeadBolt兼容的候选版本,发现应用程序不再运行 要启动服务器,我正在执行以下操作: graphDb = (GraphDatabaseAPI) new GraphDatabaseFactory() .newEmbeddedDatabaseBuilder(CONF_DBMETA_LOCATION) .setConfig(She

我有一个嵌入式neo4j服务器,它的管理控制台在Play 2.0.1应用程序中工作。我最近升级到与DeadBolt兼容的候选版本,发现应用程序不再运行

要启动服务器,我正在执行以下操作:

    graphDb = (GraphDatabaseAPI) new GraphDatabaseFactory()
                .newEmbeddedDatabaseBuilder(CONF_DBMETA_LOCATION)
                .setConfig(ShellSettings.remote_shell_enabled, "true")
                .newGraphDatabase();
        ServerConfigurator config;
        config = new ServerConfigurator(graphDb);
        // let the server endpoint be on a custom port

        srv = new WrappingNeoServerBootstrapper(graphDb, config);
        srv.start();
<included>
    <logger name="eu.mypackage" level="info">
    </logger>

    <logger name="org.neo4j" level="warn">
    </logger>

    <root level="warn">
    </root>
</included>
不幸的是,我得到了:

> java.lang.RuntimeException:
> org.neo4j.kernel.lifecycle.LifecycleException: Component
> 'org.neo4j.kernel.logging.LogbackService@4c043845' failed to
> initialize. Please see attached cause exception.
我已尝试从添加了neo4j服务器的Build.scala中删除slf4j和logback依赖项,但没有效果。neo4j似乎加载了错误的logback.xml。此外,如果我将notTransitive()添加到neo4j服务器依赖项中,启动时的logback.xml警告就会消失。我认为neo4j特定的logback.xml被嵌入到jar中,并导致了这个问题。我看到的一个潜在解决方案是通过代码编写自定义配置,但我不确定如何做到这一点。有什么想法吗?作为参考,我在启动时收到以下错误:

>     22:11:05,124 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find
> resource [logback.groovy]
>     22:11:05,125 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find
> resource [logback-test.xml]
>     22:11:05,125 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource
> [logback.xml] at
> [jar:file:/Users/steve/Code/play-2.1-RC1/repository/local/play/play_2.10/2.1-RC1/jars/play_2.10.jar!/logback.xml]
>     22:11:05,126 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml]
> occurs multiple times on the classpath.
>     22:11:05,126 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml]
> occurs at
> [jar:file:/Users/steve/Code/play-2.1-RC1/framework/../repository/cache/org.neo4j.app/neo4j-server/jars/neo4j-server-1.9-SNAPSHOT.jar!/logback.xml]
>     22:11:05,126 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml]
> occurs at
> [jar:file:/Users/steve/Code/play-2.1-RC1/repository/local/play/play_2.10/2.1-RC1/jars/play_2.10.jar!/logback.xml]
>     22:11:05,139 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@733b8bc1 - URL
> [jar:file:/Users/steve/Code/play-2.1-RC1/repository/local/play/play_2.10/2.1-RC1/jars/play_2.10.jar!/logback.xml]
> is not of type file
>     22:11:05,265 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug
> attribute not set
>     22:11:05,614 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate
> appender of type [ch.qos.logback.core.ConsoleAppender]
>     22:11:05,625 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as
> [STDOUT]
>     22:11:05,657 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming
> default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for
> [encoder] property
>     22:11:05,707 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level
> of ROOT logger to ERROR
>     22:11:05,707 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching
> appender named [STDOUT] to Logger[ROOT]
>     22:11:05,707 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of
> configuration.
>     22:11:05,709 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@4a546701 - Registering
> current configuration as safe fallback point
有关完整的例外情况,请参见下文:

> play.api.UnexpectedException: Unexpected exception[RuntimeException:
> org.neo4j.kernel.lifecycle.LifecycleException: Component
> 'org.neo4j.kernel.logging.LogbackService@4c043845' failed to
> initialize. Please see attached cause exception.]     at
> play.core.ReloadableApplication$$anonfun$get$1$$anonfun$1.apply(ApplicationProvider.scala:134)
> ~[play_2.10.jar:2.1-RC1]  at
> play.core.ReloadableApplication$$anonfun$get$1$$anonfun$1.apply(ApplicationProvider.scala:101)
> ~[play_2.10.jar:2.1-RC1]  at scala.Option.map(Option.scala:145)
> ~[scala-library.jar:na]   at
> play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:101)
> ~[play_2.10.jar:2.1-RC1]  at
> play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:99)
> ~[play_2.10.jar:2.1-RC1]  at
> scala.util.Either$RightProjection.flatMap(Either.scala:523)
> [scala-library.jar:na] Caused by: java.lang.RuntimeException:
> org.neo4j.kernel.lifecycle.LifecycleException: Component
> 'org.neo4j.kernel.logging.LogbackService@4c043845' failed to
> initialize. Please see attached cause exception.  at
> org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:258)
> ~[neo4j-kernel-1.9.M03.jar:na]    at
> org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:88)
> ~[neo4j-kernel-1.9.M03.jar:na]    at
> org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:83)
> ~[neo4j-kernel-1.9.M03.jar:1.9.M03]   at
> org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:206)
> ~[neo4j-kernel-1.9.M03.jar:1.9.M03]   at
> EmbeddedGraphDB.initializeDatabase(EmbeddedGraphDB.java:70)
> ~[na:na]  at
> EmbeddedGraphDB.<init>(EmbeddedGraphDB.java:51)
> ~[na:na] Caused by: org.neo4j.kernel.lifecycle.LifecycleException:
> Component 'org.neo4j.kernel.logging.LogbackService@4c043845' failed to
> initialize. Please see attached cause exception.  at
> org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:471)
> ~[neo4j-kernel-1.9.M03.jar:1.9.M03]   at
> org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:62)
> ~[neo4j-kernel-1.9.M03.jar:1.9.M03]   at
> org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:96)
> ~[neo4j-kernel-1.9.M03.jar:1.9.M03]   at
> org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:245)
> ~[neo4j-kernel-1.9.M03.jar:na]    at
> org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:88)
> ~[neo4j-kernel-1.9.M03.jar:na]    at
> org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:83)
> ~[neo4j-kernel-1.9.M03.jar:1.9.M03] Caused by:
> org.neo4j.kernel.lifecycle.LifecycleException: Component
> 'org.neo4j.kernel.logging.LogbackService$1@1955bd61' was successfully
> initialized, but failed to start. Please see attached cause exception.
>   at
> org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:495)
> ~[neo4j-kernel-1.9.M03.jar:1.9.M03]   at
> org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:105)
> ~[neo4j-kernel-1.9.M03.jar:1.9.M03]   at
> org.neo4j.kernel.logging.LogbackService.init(LogbackService.java:106)
> ~[neo4j-kernel-1.9.M03.jar:1.9.M03]   at
> org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:465)
> ~[neo4j-kernel-1.9.M03.jar:1.9.M03]   at
> org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:62)
> ~[neo4j-kernel-1.9.M03.jar:1.9.M03]   at
> org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:96)
> ~[neo4j-kernel-1.9.M03.jar:1.9.M03] Caused by:
> java.lang.NoSuchMethodError:
> org.codehaus.janino.ClassBodyEvaluator.setImplementedInterfaces([Ljava/lang/Class;)V
>   at
> ch.qos.logback.core.joran.conditional.PropertyEvalScriptBuilder.build(PropertyEvalScriptBuilder.java:48)
> ~[logback-core.jar:na]    at
> ch.qos.logback.core.joran.conditional.IfAction.begin(IfAction.java:67)
> ~[logback-core.jar:na]    at
> ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:276)
> ~[logback-core.jar:na]    at
> ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:148)
> ~[logback-core.jar:na]    at
> ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:130)
> ~[logback-core.jar:na]    at
> ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)
> ~[logback-core.jar:na]
>play.api.UnexpectedException:意外异常[运行时异常:
>org.neo4j.kernel.lifecycle.LifecycleException:组件
>'org.neo4j.kernel.logging。LogbackService@4c043845"没有
>初始化。请参阅附件中的原因异常。]
>play.core.ReloadableApplication$$anonfun$get$1$$anonfun$1.apply(ApplicationProvider.scala:134)
>~[play_2.10.jar:2.1-RC1]at
>play.core.ReloadableApplication$$anonfun$get$1$$anonfun$1.apply(ApplicationProvider.scala:101)
>~(play_2.10.jar:2.1-RC1)位于scala.Option.map(Option.scala:145)
>~[scala library.jar:na]at
>play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:101)
>~[play_2.10.jar:2.1-RC1]at
>play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:99)
>~[play_2.10.jar:2.1-RC1]at
>scala.util.任择$RightProjection.flatMap(任择.scala:523)
>[scala library.jar:na]由以下原因引起:java.lang.RuntimeException:
>org.neo4j.kernel.lifecycle.LifecycleException:组件
>'org.neo4j.kernel.logging。LogbackService@4c043845"没有
>初始化。请参阅附件中的原因例外。在
>org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:258)
>~[neo4j-kernel-1.9.M03.jar:na]at
>EmbeddedGraphDatabase(EmbeddedGraphDatabase.java:88)
>~[neo4j-kernel-1.9.M03.jar:na]at
>org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:83)
>~[neo4j-kernel-1.9.M03.jar:1.9.M03]at
>org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:206)
>~[neo4j-kernel-1.9.M03.jar:1.9.M03]at
>EmbeddedGraphDB.initializeDatabase(EmbeddedGraphDB.java:70)
>~[na:na]at
>EmbeddedGraphDB.(EmbeddedGraphDB.java:51)
>~[na:na]由以下原因引起:org.neo4j.kernel.lifecycle.LifecycleException:
>组件“org.neo4j.kernel.logging”。LogbackService@4c043845"没有
>初始化。请参阅附件中的原因例外。在
>org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:471)
>~[neo4j-kernel-1.9.M03.jar:1.9.M03]at
>org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:62)
>~[neo4j-kernel-1.9.M03.jar:1.9.M03]at
>org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:96)
>~[neo4j-kernel-1.9.M03.jar:1.9.M03]at
>org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:245)
>~[neo4j-kernel-1.9.M03.jar:na]at
>EmbeddedGraphDatabase(EmbeddedGraphDatabase.java:88)
>~[neo4j-kernel-1.9.M03.jar:na]at
>org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:83)
>~[neo4j-kernel-1.9.M03.jar:1.9.M03]由以下原因引起:
>org.neo4j.kernel.lifecycle.LifecycleException:组件
>'org.neo4j.kernel.logging.LogbackService$1@1955bd61"成功,
>已初始化,但无法启动。请参阅附件中的原因例外。
>在
>org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:495)
>~[neo4j-kernel-1.9.M03.jar:1.9.M03]at
>org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:105)
>~[neo4j-kernel-1.9.M03.jar:1.9.M03]at
>org.neo4j.kernel.logging.LogbackService.init(LogbackService.java:106)
>~[neo4j-kernel-1.9.M03.jar:1.9.M03]at
>org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:465)
>~[neo4j-kernel-1.9.M03.jar:1.9.M03]at
>org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:62)
>~[neo4j-kernel-1.9.M03.jar:1.9.M03]at
>org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:96)
>~[neo4j-kernel-1.9.M03.jar:1.9.M03]由以下原因引起:
>java.lang.NoSuchMethodError:
>org.codehaus.janino.ClassBodyEvaluator.setImplementedInterface([Ljava/lang/Class;)V
>在
>ch.qos.logback.core.joran.conditional.PropertyEvalScriptBuilder.build(PropertyEvalScriptBuilder.java:48)
>~[logback core.jar:na]at
>ch.qos.logback.core.joran.conditional.IfAction.begin(IfAction.java:67)
>~[logback core.jar:na]at
>ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:276)
>~[logback core.jar:na]at
>ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:148)
>~[logback core.jar:na]at
>ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:130)
>~[logback core.jar:na]at
>ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:50)
>~[logback core.jar:na]
EDIT1更多详细信息

我从play_2.10.jar中删除了logback.xml文件,并且在play应用程序启动时不再从logback获得重复警告

然后,我尝试将neo4j logback.xml和play2.1 logback.xml的内容作为custom-logback.xml放在我的play项目的根目录中。路径与play.application()相同。路径()也许这是neo4j拾取它的错误位置

在查看依赖项时,我有一个neo4j服务器所需的janino。此外,我在JAR日志记录中没有看到任何冲突,但可能我缺少了
"ch.qos.logback" % "logback-core" % "1.0.3" force(), // this should override the Play version
"ch.qos.logback" % "logback-classic" % "1.0.3" force(),
ivyXML :=
  <dependencies>
    <exclude module="log4j"/>
  </dependencies>
<included>
    <logger name="eu.mypackage" level="info">
    </logger>

    <logger name="org.neo4j" level="warn">
    </logger>

    <root level="warn">
    </root>
</included>
CONSOLE_LEVEL=ERROR