2014-02-27 100 views
1

我有一個用神器maven-jaxws-tools-plugin和目標wsconsume maven創建的ws客戶端。Jboss 7.1.1最終無法創建Web服務客戶端

一旦我嘗試啓動客戶端,我有以下錯誤。

03:25:03,928 ERROR [org.quartz.core.JobRunShell] (quartzScheduler_Worker-1) Job DEFAULT.rcdLogTrackerJobDetail threw an unhandled Exception: : java.lang.NoClassDefFoundError: org/springframework/beans/BeansException 
     at org.jboss.wsf.stack.cxf.client.configuration.JBossWSBusFactory.getSpringBusFactory(JBossWSBusFactory.java:120) 
     at org.jboss.wsf.stack.cxf.client.configuration.JBossWSBusFactory.createBus(JBossWSBusFactory.java:54) 
     at org.jboss.wsf.stack.cxf.client.ProviderImpl.setValidThreadDefaultBus(ProviderImpl.java:213) 
     at org.jboss.wsf.stack.cxf.client.ProviderImpl.createServiceDelegate(ProviderImpl.java:140) 
     at javax.xml.ws.Service.<init>(Service.java:57) [jboss-jaxws-api_2.2_spec-2.0.0.Final.jar:2.0.0.Final] 
     ..... 
     at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:113) [spring-context-support-3.1.2.RELEASE.jar:3.1.2.RELEASE] 
     at org.quartz.core.JobRunShell.run(JobRunShell.java:223) [quartz-1.8.6.jar:] 
     at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549) [quartz-1.8.6.jar:] 
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.BeansException from [Module "org.apache.cxf:main" from local module loader @4f2c61fe (roots: /opt/extcomp/jboss-as-7.1.1.Final/modules)] 
     at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) 
     at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) 
     ... 14 more 

03:25:03,949 ERROR [org.quartz.core.ErrorLogger] (quartzScheduler_Worker-1) Job (DEFAULT.rcdLogTrackerJobDetail threw an exception.: org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: java.lang.NoClassDefFoundError: org/springframework/beans/BeansException] 
     at org.quartz.core.JobRunShell.run(JobRunShell.java:234) [quartz-1.8.6.jar:] 
     at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549) [quartz-1.8.6.jar:] 
Caused by: java.lang.NoClassDefFoundError: org/springframework/beans/BeansException 
     at org.jboss.wsf.stack.cxf.client.configuration.JBossWSBusFactory.getSpringBusFactory(JBossWSBusFactory.java:120) 
     at org.jboss.wsf.stack.cxf.client.configuration.JBossWSBusFactory.createBus(JBossWSBusFactory.java:54) 
     at org.jboss.wsf.stack.cxf.client.ProviderImpl.setValidThreadDefaultBus(ProviderImpl.java:213) 
     at org.jboss.wsf.stack.cxf.client.ProviderImpl.createServiceDelegate(ProviderImpl.java:140) 
     at javax.xml.ws.Service.<init>(Service.java:57) [jboss-jaxws-api_2.2_spec-2.0.0.Final.jar:2.0.0.Final] 
     ..... 
     at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:113) [spring-context-support-3.1.2.RELEASE.jar:3.1.2.RELEASE] 
     at org.quartz.core.JobRunShell.run(JobRunShell.java:223) [quartz-1.8.6.jar:] 
     ... 1 more 
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.BeansException from [Module "org.apache.cxf:main" from local module loader @4f2c61fe (roots: /opt/extcomp/jboss-as-7.1.1.Final/modules)] 
     at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) 
     at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) 
     at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) 
     ... 14 more 

我做了一些搜索,看到有一個JBoss 7.1.1的bug,可以通過做一些手動的東西來解決;創建一個新的模塊,並將其添加到apache cxf模塊等。

我做了所有這些東西。但無法讓它工作。

有人可以幫助我,如果我做錯了什麼。

順便說一下;由於客戶端是使用wsconsume創建的,因此我還嘗試將模塊依賴項(由我創建的spring模塊)添加到jboss cxf的東西中。但沒有奏效。

回答

3

post @ @ lgum表示真的很好,幫助我。但是,到module.xml的鏈接已損壞。所以爲了將來保留它,我會在下面發佈解決方案。

  1. JBoss的-AS-7.1.1-最終文件夾([JBOSS_HOME])創建此路徑:modules/org/springframework/spring/main
  2. 創建module.xml文件(如下圖),新創建的文件夾
  3. 下載中,放置jar文件到同一文件夾(JAR名單是module.xml內)
  4. 打開此文件[JBOSS_HOME]/modules/org/apache/cxf/main/module.xml
  5. 在這個文件的末尾,請確保您有這個模塊依賴<module name="org.springframework.spring" />

春module.xml內容:

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.1" name="org.springframework.spring"> 
    <resources> 
     <resource-root path="spring-aop-3.1.4.RELEASE.jar"/> 
     <resource-root path="spring-asm-3.1.4.RELEASE.jar"/> 
     <resource-root path="spring-beans-3.1.4.RELEASE.jar"/> 
     <resource-root path="spring-context-3.1.4.RELEASE.jar"/> 
     <resource-root path="spring-context-support-3.1.4.RELEASE.jar"/> 
     <resource-root path="spring-core-3.1.4.RELEASE.jar"/> 
     <resource-root path="spring-expression-3.1.4.RELEASE.jar"/> 
     <resource-root path="spring-jdbc-3.1.4.RELEASE.jar"/> 
     <resource-root path="spring-orm-3.1.4.RELEASE.jar"/> 
     <resource-root path="spring-oxm-3.1.4.RELEASE.jar"/> 
     <resource-root path="spring-tx-3.1.4.RELEASE.jar"/> 
     <resource-root path="spring-web-3.1.4.RELEASE.jar"/> 
    </resources> 
    <dependencies> 
     <module name="javax.api"/> 
     <module name="javax.jms.api"/> 
     <module name="javax.annotation.api"/> 
     <module name="javax.servlet.api"/> 
     <module name="org.apache.commons.logging"/> 
     <module name="org.jboss.vfs"/> 
    </dependencies> 
</module> 
0

我實例化一個Web服務客戶端時有同樣的錯誤,但我不能改變的JBoss模塊(公司環境)。這個問題花了我的一天,但我終於通過添加依賴於版本2.7.4的cxf-rt-frontend-jaxws來解決它。

<dependency> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-rt-frontend-jaxws</artifactId> 
    <version>${cxf.version}</version> 
</dependency> 

希望它有幫助。