简体   繁体   中英

Struts2 Tag NoClassDefFound NestedMessagesPresentTag

I am not able to deploy my war in jboss. Trying to get usage of the struts2 tags for use in a JSP file. Yet cannot deploy..... I have added struts2-core-2.3.15.3.jar to my build path (eclipse). That should be all I need right? One thing, I'm not sure if its an issue or not, is I am using a re-write filter alongside the struts2, not sure if that might be creating a conflict. My struts.xml is inside my WEB-INF directory.

web.xml

<display-name>Caterpillar MMS China Gateway</display-name>
<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

    <filter>
        <filter-name>UrlRewriteFilter</filter-name>
        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
        <init-param>
            <param-name>confPath</param-name>
            <param-value>/WEB-INF/urlrewrite.xml</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>UrlRewriteFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
<!--            <dispatcher>FORWARD</dispatcher> -->
    </filter-mapping>

struts.xml

<struts>
<constant name="struts.enable.DynamicMethodInvocation"
    value="false" />
<constant name="struts.devMode" value="false" />

<constant name="struts.custom.i18n.resources"
    value="ApplicationResources" />

<package name="default" extends="struts-default" namespace="/">

    <action name="login" method="authenticate"
        class="action.LoginAction">
        <result name="success">Listing.jsp</result>
        <result name="error">Login.jsp</result>

    </action>
</package>
</struts>

Stack Trace

19:29:09,101 ERROR [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015863: Replacement of deployment "XXXXX.war" by deployment "XXXXX.war" was rolled back wi
th the following failure message:
{"JBAS014671: Failed services" => {"jboss.deployment.unit.\"XXXXX.war\".POST_MODULE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"XXXXX.
war\".POST_MODULE: JBAS018733: Failed to process phase POST_MODULE of deployment \"XXXXX.war\"
   Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: ava.lang.ClassNotFoundException: org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag from [Module \"de
ployment.XXXXX.war:main\" from Service Module Loader]
    Caused by: java.lang.ClassNotFoundException: org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag from [Module \"deployment.XXXXX.war:main\" from Service Module Loader
]"}}
19:29:09,753 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-9) MSC000001: Failed to start service jboss.deployment.unit."XXXXX.war".POST_MODULE: org.jboss.msc.service.Star
tException in service jboss.deployment.unit."XXXXX.war".POST_MODULE: JBAS018733: Failed to process phase POST_MODULE of deployment "XXXXX.war"
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:127) [jboss-as-server-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]
        at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: java.lang.ClassNotFoundException: org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag from [Module "deploym
ent.XXXXX.war:main" from Service Module Loader]
        at org.jboss.as.jaxrs.deployment.JaxrsComponentDeployer.deploy(JaxrsComponentDeployer.java:79)
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:120) [jboss-as-server-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
        ... 5 more
Caused by: java.lang.ClassNotFoundException: org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag from [Module "deployment.XXXXX.war:main" from Service Module Loader]
        at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:196) [jboss-modules.jar:1.2.0.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:444) [jboss-modules.jar:1.2.0.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:432) [jboss-modules.jar:1.2.0.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:374) [jboss-modules.jar:1.2.0.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:119) [jboss-modules.jar:1.2.0.Final-redhat-1]
        at org.jboss.as.jaxrs.deployment.JaxrsComponentDeployer.deploy(JaxrsComponentDeployer.java:77)
        ... 6 more

19:29:09,769 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report
JBAS014775:    New missing/unsatisfied dependencies:
      service jboss.naming.context.java.module.XXXXX.XXXXX (missing) dependents: [service jboss.naming.context.java.module.XXXXX.XXXXX.Vali
dator, service jboss.naming.context.java.module.XXXXX.XXXXX.ValidatorFactory]
JBAS014777:   Services which failed to start:      service jboss.deployment.unit."XXXXX.war".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit."Cate
rpillarMMSChina.war".POST_MODULE: JBAS018733: Failed to process phase POST_MODULE of deployment "XXXXX.war"

19:29:09,780 INFO  [org.jboss.as.controller] (MSC service thread 1-14) JBAS014774: Service status report
JBAS014776:    Newly corrected services:
      service jboss.naming.context.java.module.XXXXX.XXXXX (no longer required)

19:40:15,201 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-4) JBAS015877: Stopped deployment XXXXX.war (runtime-name: XXXXX.war) in 64ms
19:40:15,233 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 1) JBAS018558: Undeployed "XXXXX.war" (runtime-name: "XXXXX.war")
19:43:45,313 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-15) JBAS015876: Starting deployment of "XXXXX.war" (runtime-name: "XXXXX.war")
19:43:46,170 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service jboss.deployment.unit."XXXXX.war".POST_MODULE: org.jboss.msc.service.Star
tException in service jboss.deployment.unit."XXXXX.war".POST_MODULE: JBAS018733: Failed to process phase POST_MODULE of deployment "XXXXX.war"
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:127) [jboss-as-server-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]
        at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: java.lang.ClassNotFoundException: org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag from [Module "deploym
ent.XXXXX.war:main" from Service Module Loader]
        at org.jboss.as.jaxrs.deployment.JaxrsComponentDeployer.deploy(JaxrsComponentDeployer.java:79)
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:120) [jboss-as-server-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
        ... 5 more
Caused by: java.lang.ClassNotFoundException: org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag from [Module "deployment.XXXXX.war:main" from Service Module Loader]
        at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:196) [jboss-modules.jar:1.2.0.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:444) [jboss-modules.jar:1.2.0.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:432) [jboss-modules.jar:1.2.0.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:374) [jboss-modules.jar:1.2.0.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:119) [jboss-modules.jar:1.2.0.Final-redhat-1]
        at org.jboss.as.jaxrs.deployment.JaxrsComponentDeployer.deploy(JaxrsComponentDeployer.java:77)
        ... 6 more

19:43:46,195 ERROR [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870: Deploy of deployment "XXXXX.war" was rolled back with the following failure message:
{"JBAS014671: Failed services" => {"jboss.deployment.unit.\"XXXXX.war\".POST_MODULE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"XXXXX.
war\".POST_MODULE: JBAS018733: Failed to process phase POST_MODULE of deployment \"XXXXX.war\"
    Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: java.lang.ClassNotFoundException: org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag from [Module \"de
ployment.XXXXX.war:main\" from Service Module Loader]
    Caused by: java.lang.ClassNotFoundException: org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag from [Module \"deployment.XXXXX.war:main\" from Service Module Loader
]"}}
19:43:46,259 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-13) JBAS015877: Stopped deployment XXXXX.war (runtime-name: XXXXX.war) in 64ms
20:02:06,752 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-10) JBAS015876: Starting deployment of "XXXXX.war" (runtime-name: "XXXXX.war")
20:02:07,430 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-6) MSC000001: Failed to start service jboss.deployment.unit."XXXXX.war".POST_MODULE: org.jboss.msc.service.Star
tException in service jboss.deployment.unit."XXXXX.war".POST_MODULE: JBAS018733: Failed to process phase POST_MODULE of deployment "XXXXX.war"
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:127) [jboss-as-server-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]
        at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: java.lang.ClassNotFoundException: org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag from [Module "deploym
ent.XXXXX.war:main" from Service Module Loader]
        at org.jboss.as.jaxrs.deployment.JaxrsComponentDeployer.deploy(JaxrsComponentDeployer.java:79)
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:120) [jboss-as-server-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
        ... 5 more
Caused by: java.lang.ClassNotFoundException: org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag from [Module "deployment.XXXXX.war:main" from Service Module Loader]
        at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:196) [jboss-modules.jar:1.2.0.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:444) [jboss-modules.jar:1.2.0.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:432) [jboss-modules.jar:1.2.0.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:374) [jboss-modules.jar:1.2.0.Final-redhat-1]
        at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:119) [jboss-modules.jar:1.2.0.Final-redhat-1]
        at org.jboss.as.jaxrs.deployment.JaxrsComponentDeployer.deploy(JaxrsComponentDeployer.java:77)
        ... 6 more

20:02:07,456 ERROR [org.jboss.as.server] (DeploymentScanner-threads - 1) JBAS015870: Deploy of deployment "XXXXX.war" was rolled back with the following failure message:
{"JBAS014671: Failed services" => {"jboss.deployment.unit.\"XXXXX.war\".POST_MODULE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"XXXXX.
war\".POST_MODULE: JBAS018733: Failed to process phase POST_MODULE of deployment \"XXXXX.war\"
    Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: java.lang.ClassNotFoundException: org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag from [Module \"de
ployment.XXXXX.war:main\" from Service Module Loader]
    Caused by: java.lang.ClassNotFoundException: org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag from [Module \"deployment.XXXXX.war:main\" from Service Module Loader
]"}}
20:02:07,538 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-6) JBAS015877: Stopped deployment XXXXX.war (runtime-name: XXXXX.war) in 82ms

The problem is probably related to the libraries in your WAR.

Check that your Struts JARs are

  • not being included twice
  • not of different versions

and also ensure you are not packaging libraries in your WAR that should not be included, because already available on the server (in that case, you need to manually remove them from the building process, or setting their scope to "provided" if using Maven).

Check out the list of the implicit module dependencies already handled by JBOSS 7.

Its an inadvertent error where JBoss not not pick up modifications in the struts configuration I think... Anyway resolved. Thx.

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