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