[使用WSDL生成的类的单元测试中的java.lang.ExceptionInInitializerError

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[使用WSDL生成的类的单元测试中的java.lang.ExceptionInInitializerError相关的知识,希望对你有一定的参考价值。

我正在成功使用SOAP Web服务。现在,我正在尝试编写一些单元测试,但是当测试访问使用WSDL生成的类(EmployeeInfo)时,它将给出以下错误。

java.lang.ExceptionInInitializerError
    at org.apache.axis.description.TypeDesc.<clinit>(TypeDesc.java:61)
    at com.www.soapservice.schema.EmployeeInfo.<clinit>(EmployeeInfo.java:106) 

我编写的单元测试如下

@RunWith(SpringRunner.class)
@SpringBootTest
public class RecordsManagerTests {

    @Mock
    private SoapClient soapClient;

    @Test
    public void sampletest() {
        Mockito.when(soapClient.getFullEmployeeInfoById(Mockito.anyLong())).thenReturn(new EmployeeInfo());

        RecordsManagerImpl sut = new RecordsManagerImpl(soapClient);

        sut.getEmployeeInformation(999);
    }

}

我搜索了这个问题,但是只能嘲笑该服务。

答案

我不确定为什么会这样,但确实如此,我在测试方法及其工作的开始处添加了以下内容:>

System.setProperty("org.apache.commons.logging.LogFactory", "org.apache.commons.logging.impl.LogFactoryImpl");

以上是关于[使用WSDL生成的类的单元测试中的java.lang.ExceptionInInitializerError的主要内容,如果未能解决你的问题,请参考以下文章

如何对扩展/继承第 3 方类的类进行单元测试

JUnit单元测试规范

向依赖于XSD中的信息的JAXB生成的类添加注释

SOAPUI 不显示来自 WSDL 的操作

Python单元测试unittest与HTMLTestRunner报告生成

我应该对扩展 Sonata Base EntityManager 类的类进行单元测试吗?