Caused by: java.lang.NoClassDefFoundError: org/apache/cxf/ws


I am migrating my application from jboss-eap-5.1 to jboss-eap-6.4.0. My application is using spring 3.1.1 related jar and apache-cxf-2.7.7 jars. 
Ear file structure is as below 
EAR/lib - contains all the jar which is common for wars.
app1.war/lib - contains jars required for it
app2.war/lib - contains jars required for it

I have also excluded modules for webservice, org.jboss.as.jaxrs & ejb3 from  standalong.xml config file.  

Spring jars :
spring-orm-3.1.1.RELEASE.jar
spring-aop-3.1.1.RELEASE.jar                spring-oxm-3.2.4.RELEASE.jar
spring-asm-3.1.1.RELEASE.jar                spring-test-3.2.4.RELEASE.jar
spring-beans-3.1.1.RELEASE.jar              spring-tx-3.1.1.RELEASE.jar
spring-context-3.1.1.RELEASE.jar            spring-web-3.2.4.RELEASE.jar
spring-core-3.1.1.RELEASE.jar               spring-webmvc-3.2.4.RELEASE.jar
spring-data-commons-core-1.1.0.RELEASE.jar  spring-ws-core-2.1.4.RELEASE.jar
spring-data-jpa-1.0.3.RELEASE.jar           spring-ws-test-2.1.4.RELEASE.jar
spring-expression-3.1.1.RELEASE.jar         spring-xml-2.1.4.RELEASE.jar
javaw.ws.rs jar containes below jar
javax.ws.rs-api-2.0-m10.jar
apache-cfx-jars packaged in ear/lib are 
cxf-api-2.7.7.jar                     cxf-rt-frontend-jaxrs-2.7.7.jar
cxf-rt-bindings-soap-2.7.7.jar        cxf-rt-frontend-jaxws-2.7.7.jar
cxf-rt-bindings-xml-2.7.7.jar         cxf-rt-frontend-simple-2.7.7.jar
cxf-rt-core-2.7.7.jar                 cxf-rt-transports-http-2.7.7.jar
cxf-rt-databinding-jaxb-2.7.7.jar     cxf-rt-transports-local-2.7.7.jar
cxf-rt-features-clustering-2.7.7.jar

now when i deploy , i am getting below error. I am not sure how to resolve this error as  below
7:33:07,784 INFO  [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor] (pool-6-thread-2) JSR-330 'javax.inject.Inject' annotation found and supported for autowiring

07:33:07,785 info [org.springframework.beans.factory.factory.annotation.autowiredannotationbeanbeanpostprocestor](pool-5-thread-1)0];工厂等级的根@

07:33:08,015错误[stderr](线程147)2016-06-20 07:33:08.014 WARN net.spy.memcached.auth.auth.auth.auththread:身份验证:身份验证未能/172.172.16.113.154:11210:状态:状态:状态:状态:状态:状态:状态:状态:{操作Status Success = false:无效参数}07:33:08,026 warn [org.jboss.modules](pool-6-thread-2)无法定义类org.apache.cxf.transport.http.policy.policy.httpserverserverashersertionbuilder in Module中从服务模块加载程序:java.lang.linkageError:无法链接org/apache/cxf/cxf/transport/http/prolig/httpserverassertionbuilder(模块" deployment.smcfs.earts" atorg.jboss.modules.moduleclassloader.defineclass(moduleclassloader.java:487)[jboss-modules.jar:1.3.6.final-redhat-1] atorg.jboss.modules.moduleclassloader.loadclasslocal(moduleclassloader.java:277)[jboss-modules.jar.jar:1.3.6.final-redhat-1] at org.jboss.modules.moduleclassloader $ 1.loadClassLocal(moduleclassloader.java:92)[jboss-modules.jar.jar:1.3.6.final-redhat-1] atorg.jboss.modules.module.module.loadmoduleclass(module.java:568)[jboss-modules.jar:1.3.6.final-redhat-1

When i check errors closely it is failing due to below class not found exception .
]
    at com.walmartlabs.services.util.base.LabsCallable.call(LabsCallable.java:31) [labs-ims-1.0.jar:]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_51]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_51]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_51]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_51]

引起的: 在java.lang.classloader.defineclass1(本机方法)[rt.jar:1.8.0_51] 在java.lang.classloader.defineclass(classLoader.java:760)[rt.jar:1.8.0_51] atorg.jboss.modules.moduleclassloader.dodefineorloadclass(moduleclassloader.java:361) atorg.jboss.modules.moduleclassloader.defineclass(moduleclassloader.java:482)[jboss-modules.jar:1.3.6.final-redhat-1] ... 148引起:java.lang.classnotfoundexception:org.apache.cxf.ws.policy.builder.jaxb.jaxb.jaxb.jaxbassertionbuilder,来自[Module' at org.jboss.modules.moduleclassloader.findclass(moduleclassloader.java:213)[jboss-modules.jar:1.3.6。

    *********************************************8
      at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_51]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_51]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_51]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_51]

引起的: 在java.lang.classloader.defineclass1(本机方法)[rt.jar:1.8.0_51] 在java.lang.classloader.defineclass(classLoader.java:760)[rt.jar:1.8.0_51] atorg.jboss.modules.moduleclassloader.dodefineorloadclass(moduleclassloader.java:361) atorg.jboss.modules.moduleclassloader.defineclass(moduleclassloader.java:482)[jboss-modules.jar:1.3.6.final-redhat-1] ... 148引起:java.lang.classnotfoundException:org.apache.cxf.ws.ws.policy.abstractpolicyinterceptorporprovider,来自[module" deployment.smcfs.ear:main:aim ofer Serive Main loader'' atorg.jboss.modules.moduleclassloader.findclass(moduleclassloader.java:213)[jboss-modules.jar:1.3.6.final-redhat-1]

    ************************************

任何建议如何克服这个问题

Thanks

我必须将以下依赖项添加到我的pom中以避免该错误:

 <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxrs</artifactId>
        <version>3.2.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-ws-policy</artifactId>
        <version>3.2.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-wsdl</artifactId>
        <version>3.2.0</version>
    </dependency>

    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http</artifactId>
        <version>3.2.0</version>
    </dependency>

最新更新