繁体   English   中英

NoSuchMethodError:org.apache.log4j.ConsoleAppender。 <init> (Lorg /阿帕奇/ log4j的/布局;)

[英]NoSuchMethodError: org.apache.log4j.ConsoleAppender.<init>(Lorg/apache/log4j/Layout;)

我有一个Maven项目,jdk:1.8,spring-boot:1.5.4.RELEASE,spring:4.3.9.RELEASE,以及一些供应商依赖项。 该项目会生成并运行,但是当我访问供应商软件包所使用的资源时,会出现以下异常:

java.lang.NoSuchMethodError: org.apache.log4j.ConsoleAppender.<init>(Lorg/apache/log4j/Layout;)V
    at bkLogPkg.SingletonLog.<init>(SingletonLog.java:19) ~[VendorComLib.jar:na]
    at Vendor.ConnectionBasket.<init>(ConnectionBasket.java:31) ~[VendorServices.jar:na]
    at Vendor.ConnectionBasketInterface.Loader(ConnectionBasketInterface.java:450) ~[VendorServices.jar:na]
    at Vendor.ConnectionBasketInterface.<init>(ConnectionBasketInterface.java:251) ~[VendorServices.jar:na]

...

它正在尝试从Vendor jar文件调用方法到log4j 1.2.14.jar文件,但是无法执行。 我在pom.xml文件中添加了供应商依赖性。

pom.xml:http://maven.apache.org/xsd/maven-4.0.0.xsd“> 4.0.0

<groupId>com.sample</groupId>
<artifactId>angular2-spring</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

<name>angular2-spring</name>
<description>Angular 2 application with Spring 4</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.4.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <org.slf4j-version>1.2.14</org.slf4j-version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
    </dependency>

    <!-- Vendor dependencies from Local Repository -->
    <dependency>
        <groupId>Vendor</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.14</version>
    </dependency>
    <dependency>
        <groupId>Vendor</groupId>
        <artifactId>VendorServiceAuth</artifactId>
        <version>1.0.0</version>
    </dependency>
    <dependency>
        <groupId>Vendor</groupId>
        <artifactId>VendorServices</artifactId>
        <version>1.0.0</version>
    </dependency>
    <dependency>
        <groupId>Vendor</groupId>
        <artifactId>VendorComLib</artifactId>
        <version>1.0.0</version>
    </dependency>
    <dependency>
        <groupId>Vendor</groupId>
        <artifactId>VendorHeaderClass</artifactId>
        <version>1.0.0</version>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

我遇到了类似的问题,并且通过确保所使用的版本是最新版本并且与其余代码兼容,解决了我所有的问题。 对于您的问题,.jar似乎是为兼容而专门构建的,因此我怀疑这是问题所在。 鉴于手头的信息,只有我能想到的是:

1.)尝试确保所有正在使用的.jar都是最新版本。 (有时,如果您的其他.jar文件未完全更新,则当尝试从前面版本的.jar中访问方法时,它们会引发错误/异常。)

2)如果“ 1”不起作用,请尝试在IDE中使用依赖项导入功能。 我曾经发生过很多事,其中Maven只是由于IDE兼容性引起了奇怪的错误。 从“依赖关系”菜单中导入所有.jar文件也可能会有所帮助。

我今天有同样的问题。 我花了几个小时才找到原因。

您只是与log4j jar 冲突

快速解决方法是:

<dependency>
    <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>log4j-over-slf4j</artifactId>
            </exclusion>
        </exclusions>
</dependency>

如果您确实需要log4j,则添加依赖项:

<dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>

您可以检查log4j-over-slf4j来了解详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM