2011-08-16 69 views
1

我正在使用JBoss AS7。嘗試部署我的應用程序時,我得到一個ClassNotFoundException - 看起來像是沒有找到的JMSExceptionNoClassDefFoundError當類在JBoss AS7中時WAR-WEB-INF/classes文件夾

09:54:53,166 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC00001: Failed to start service jboss.deployment.unit."myapp-maventest.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."myapp-maventest.war".INSTALL: Failed to process phase INSTALL of deployment "myapp-maventest.war" 
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:121) 
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765) 
    at org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_26] 
    at java.lang.Thread.run(Thread.java:680) [:1.6.0_26] 
Caused by: java.lang.RuntimeException: Error getting reflective information for class com.mycompany.myapp.common.jms.servlets.StationLogout 
    at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:70) 
    at org.jboss.as.ee.component.EEModuleClassDescription$DefaultConfigurator.configure(EEModuleClassDescription.java:144) 
    at org.jboss.as.ee.component.EEClassConfigurationProcessor.deploy(EEClassConfigurationProcessor.java:100) 
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115) 
    ... 5 more 
Caused by: java.lang.NoClassDefFoundError: JMSException 
    at java.lang.Class.getDeclaredMethods0(Native Method) [:1.6.0_26] 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) [:1.6.0_26] 
    at java.lang.Class.getDeclaredMethods(Class.java:1791) [:1.6.0_26] 
    at org.jboss.as.server.deployment.reflect.ClassReflectionIndex.<init>(ClassReflectionIndex.java:65) 
    at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:66) 
    ... 8 more 
Caused by: java.lang.ClassNotFoundException: JMSException from [Module "deployment.myapp-maventest.war:main" from Service Module Loader] 
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:358) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:330) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:307) 
    at org.jboss.modules.Conc 

JMSException.class不在/模塊/的javax/JMS。我有這個類的jar文件 - javaee-api-6.0.jar。我將這個jar文件複製到/ src/main/webapp/WEB-INF/lib,但我仍然收到這個ClassNotFoundException。

我需要幫助調試。我嘗試過的一件事 - 我想也許JBoss加載的/ modules/javax模塊與我的javaee-api-6.0.jar文件衝突 - 所以我試圖用src/main/webapp/WEB-INF/jboss- deployment-structure.xml文件

<jboss-deployment-structure> 
    <deployment> 
    <exclusions> 
     <module name="javax.jms" /> 
    </exclusions> 
    </deployment> 
</jboss-deployment-structure> 

但我仍然得到相同的NoClassDefFoundError。有關如何解決的任何建議?

+0

什麼是你的戰爭文件結構?你的罐子在這場戰爭中的位置在哪裏? –

回答

1

您是否在jbossas7中啓用了JMS模塊?默認情況下,standalone.xml中未啓用。您必須編輯正在使用的standalone.xml,然後它將加載jms和實現(aka HornetQ的)。