2013-10-21 310 views
0

我正在开发一个使用Spring/Maven的应用程序,并且遇到依赖关系的问题。一切正常,但是当我向Spring-WS添加依赖时,我的测试停止工作。无法初始化类org.apache.cxf.staxutils.StaxUtils

这里是堆栈跟踪我,导致无法加载的ApplicationContext

Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.cxf.staxutils.StaxUtils 
    at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:256) 
    at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:203) 
    at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:98) 
    at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:199) 
    at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:147) 
    at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:98) 
    at javax.xml.ws.Service.<init>(Service.java:77) 
    at com.mycompany.webservice.documentservice.client.DocumentServiceService.<init>(DocumentServiceService.java:61) 
    at com.mycompany.service.implementation.DocumentService.<init>(DocumentService.java:121) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:148) 

这里是新的依赖:

<!-- 
    Spring WS 
--> 
<dependency> 
    <groupId>org.springframework.ws</groupId> 
    <artifactId>spring-ws-core</artifactId> 
    <version>${spring-ws.version}</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework.ws</groupId> 
    <artifactId>spring-ws-security</artifactId> 
    <version>${spring-ws.version}</version> 
</dependency> 

我想有一个与CXF依赖性的冲突但找不到在哪里:

<!-- 
    Web Service 
--> 
<dependency> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-rt-core</artifactId> 
    <version>${cxf.version}</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-rt-frontend-jaxws</artifactId> 
    <version>${cxf.version}</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-rt-ws-security</artifactId> 
    <version>${cxf.version}</version> 
</dependency> 

这里有冲突,但是当我添加排除问题仍然存在 Conflict with wsdl4j Conflict with wss4j

感谢您的帮助。

回答

0

好吧,我通过以下操作解决了该问题:从CXF 2.7.6

升级到2.7.7 加入依赖性

<dependency> 
    <groupId>com.sun.xml.stream</groupId> 
    <artifactId>sjsxp</artifactId> 
    <version>${sjsxp.version}</version> 
</dependency> 

无法解释为什么,但测试运行良好,该应用程序也是。

+1

如果你完全可以避免它,你真的不想使用sjsxp。确保你在某处放置了woodstox-core 4.2.0。 –

相关问题