NoSuchMethodError:org / apache / log4j / Logger.setLevel(Lorg / apache / log4j / Level;)

时间:2015-07-08 09:23:13

标签: java maven logging log4j slf4j

我在我的java项目的pom.xml中使用这些log4j,slf4j和ch.qos.logback依赖项:

<data name=\\"(.+)\\" xml:space=\\"preserve\\">

我最近想使用外部servlet库并在pom中定义该依赖项。这个servlet的init方法如下所示:

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.4</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.1.2</version>
        </dependency>
            <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>1.6.4</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>log4j-over-slf4j</artifactId>
            <version>1.6.4</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jul-to-slf4j</artifactId>
            <version>1.6.4</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.14</version>
        </dependency>

当我启动服务器时,我的Weblogic Server向init方法显示了这个异常:

  

java.lang.NoSuchMethodError:   组织/阿帕奇/ log4j的/ Logger.setLevel(Lorg /阿帕奇/ log4j的/电平;)V

当我在eclipse中打开HealthpageServlet jar内容时,它在WEB-INF / lib文件夹中有一个log4j-1.2.15 jar。但即使我从pom.xml中排除了该依赖项,我也看到了这个异常并且我的服务器无法启动。有什么问题?

2 个答案:

答案 0 :(得分:1)

由于我的外部jar的log4j版本(1.2.15)与我的父项目的slf4j版本(1.6.4)不兼容(其中logger.setLevel()不可用),我不得不将我的slf4j更新为版本1.7.7。

答案 1 :(得分:0)

我知道答案为时已晚,但添加此答案可能会对他人有所帮助。 就我而言,通过尝试不同的配置,我得出结论说log4j和slf4j要成功运行,我们需要找出版本匹配。 spring-mvc与以上两个依赖项之间的版本不匹配将导致上述错误。因此,请尝试找出3个依赖项之间的正确版本匹配。我尝试使用以下依赖项来完成工作。

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.1.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j13</artifactId>
        <version>1.0.1</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>