两个Web服务SOAP不能与wildfly 9.0.2一起使用

时间:2017-12-21 09:18:24

标签: java web-services soap wildfly

所以我有一个SOAP应用程序可以正常使用Wildfly,另一个早期基于apache cxf构建并且在tomcat上运行但是我必须使它与Wildfly一起工作所以我添加了一个Jboss-deployment-structure,如下所示。

<?xml version='1.0' encoding='UTF-8'?> <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">   <deployment>
 <exclude-subsystems>
    <subsystem name="webservices" />
</exclude-subsystems>    </deployment>   </jboss-deployment-structure>

之后两个Web服务都开始在同一个wildfly上运行,但是我注意到如果部署它们可以工作,但是当服务器重新启动时,使用Jboss工作正常的那个提供了以下错误,其中Apache Cxf一个人工作正常。

2017-12-21 04:20:09,856 ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to /booking/ReservationService: java.lang.LinkageError: Failed to link com/sun/xml/messaging/saaj/soap/SOAPDocumentImpl (Module "deployment.CreateWS.war:main" from Service Module Loader)
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:437)
    at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:269)
Caused by: java.lang.NoClassDefFoundError: com/sun/org/apache/xerces/internal/dom/DocumentImpl
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:353)
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:432)
    ... 62 more
Caused by: java.lang.ClassNotFoundException: com.sun.org.apache.xerces.internal.dom.DocumentImpl from [Module "deployment.CreateWS.war:main" from Service Module Loader]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:455)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:404)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:385)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:130)
    ... 66 more

预订是使用jboss和CreateWS的WS是apache cxf one。

1 个答案:

答案 0 :(得分:0)

我通过在META-INF文件夹中添加一个manifest.mf文件解决了这个问题,该文件依赖于停止工作的webservice,因此每当重新启动服务器时,首先加载旧的WS并进行部署。