簡體   English   中英

運行SoapUIMockServiceRunner時java.lang.NoSuchMethodError

[英]java.lang.NoSuchMethodError when running SoapUIMockServiceRunner

在針對Spring Boot項目的集成測試中運行SoapUI MockService時遇到問題。

static SoapUIMockServiceRunner mockServiceRunner;

@BeforeClass
public static void setupSoapUI(){
    mockServiceRunner = new SoapUIMockServiceRunner();
    mockServiceRunner.setProjectFile("src/test/resources/MyRESTMockService-soapui-project.xml");
    mockServiceRunner.setMockService("MyRESTMockService");
    mockServiceRunner.setBlock(false);
    try {
        mockServiceRunner.run();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

@AfterClass
public static void tearDownSoapUI(){
    mockServiceRunner.stopAll();
}

運行時給我這個錯誤:

java.lang.NoSuchMethodError: org.apache.log4j.ConsoleAppender.setWriter(Ljava/io/Writer;)V

    at com.eviware.soapui.tools.AbstractSoapUIRunner.ensureConsoleAppenderIsDefined(AbstractSoapUIRunner.java:96)
    at com.eviware.soapui.tools.AbstractSoapUIRunner.initGroovyLog(AbstractSoapUIRunner.java:77)
    at com.eviware.soapui.tools.SoapUIMockServiceRunner.runRunner(SoapUIMockServiceRunner.java:90)
    at com.eviware.soapui.tools.AbstractSoapUIRunner.run(AbstractSoapUIRunner.java:202)

似乎與org.apache.log4j.ConsoleAppender類版本的問題有關,該版本來自log4j-over-slf4j依賴關系,該依賴關系是空的。

mvn dependency:tree顯示依賴項來自boot:spring-boot-starter-web

[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:1.5.2.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:1.5.2.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot:jar:1.5.2.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:1.5.2.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:1.5.2.RELEASE:compile
[INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.1.11:compile
[INFO] |  |  |  +- org.slf4j:jul-to-slf4j:jar:1.7.24:compile
[INFO] |  |  |  \- org.slf4j:log4j-over-slf4j:jar:1.7.24:compile

為該依賴項添加排除項可以為我解決該問題:

    <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>

希望有一天,這對某人有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM