0

こんにちは、次のバージョンの logback と Janino を使用しています。

  <dependency org="ch.qos.logback" name="logback-core" rev="1.0.11" conf="runtime"/>
  <dependency org="ch.qos.logback" name="logback-classic" rev="1.0.11" conf="runtime"/>
  <dependency org="org.codehaus.janino" name="janino" rev="2.6.1" conf="runtime"/> 

および条件を使用したロギング<if>構成は次のとおりです。

<root level="INFO">
    <if condition='property("xxx").contains("dev")'>
      <then>
        <appender-ref ref="dev" />
      </then>
    </if>
</root> 

私が見るエラーは次のとおりです。

7:38:54,729 |-ch.qos.logback.classic.joran.action.RootLoggerAction の INFO - ROOT ロガーのレベルを INFO に設定 [ch.qos.logback.classic.LoggerContext] のインスタンス化に失敗しました 報告された例外: java.lang .NoSuchMethodError: org.codehaus.janino.ClassBodyEvaluator.setImplementedInterfaces([Ljava/lang/Class;)V at ch.qos.logback.core.joran.conditional.PropertyEvalScriptBuilder.build(PropertyEvalScriptBuilder.java:48) at ch.qos. logback.core.joran.conditional.IfAction.begin(IfAction.java:67) で ch.qos.logback.core.joran.spi.Interpreter.callBeginAction(Interpreter.java:276) で ch.qos.logback.core で。 joran.spi.Interpreter.startElement(Interpreter.java:148) at ch.qos.logback.core.joran.spi.Interpreter.startElement(Interpreter.java:130) at ch.qos.logback.core.joran.spi. ch.qos.logback.core の EventPlayer.play(EventPlayer.java:50)。ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:143) の joran.GenericConfigurator.doConfigure(GenericConfigurator.java:157) ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator. java:106) で ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:56) で ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:75) で ch.qos でorg.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:85) の .logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:148) org.slf4j.impl.StaticLoggerBinder.(StaticLoggerBinder.java:55) のorg.slf4j.LoggerFactory.bind(LoggerFactory.java:128) で org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:107) で org.slf4j.LoggerFactory.org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:269) で getILoggerFactory(LoggerFactory.java:295) org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:281) で

このエラーがスローされる理由はありますか?

4

2 に答える 2

4

このsetImplementedInterfaces(Class[])メソッドはClassBodyEvaluatorjanino 2.6.1 のクラスの一部です。クラスパスをチェックして、別のバージョンの Janino がどこかに潜んでいないか確認してください。クラスパスに別のバージョンの Janino が含まれている可能性が非常に高くなります。

于 2013-03-26T18:16:30.773 に答える