简体   繁体   中英

NoClassDefFoundError when class is in JBoss AS7 WAR WEB-INF/classes folder

I'm using JBoss AS7. I get a ClassNotFoundException when attempting to deploy my app - looks like it's not finding JMSException

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 is not in /modules/javax/jms. I have this class in a jar file - javaee-api-6.0.jar. I copied this jar file to /src/main/webapp/WEB-INF/lib, but I'm still receiving this ClassNotFoundException.

I need help debugging. One thing I tried - I thought maybe the /modules/javax module JBoss was loading was conflicting with my javaee-api-6.0.jar file - so I tried to exclude it with a src/main/webapp/WEB-INF/jboss-deployment-structure.xml file

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

but I still get the same NoClassDefFoundError. Any advice on how to fix?

Have you enabled the module of JMS in the jbossas7?By default in the standalone.xml isn't enabled.You have to edit the standalone.xml you are using and then it will load the jms and the implementation(aka Hornetq).

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM