【问题标题】:Struts2 Tag NoClassDefFound NestedMessagesPresentTagStruts2 标记 NoClassDefFound NestedMessagesPresentTag
【发布时间】:2023-03-20 10:37:01
【问题描述】:

我无法在 jboss 中部署我的战争。试图在 JSP 文件中使用 struts2 标记。但无法部署.....我已将 struts2-core-2.3.15.3.jar 添加到我的构建路径(eclipse)中。这应该就是我所需要的吧?有一件事,我不确定它是否是一个问题,是我在 struts2 旁边使用了一个重写过滤器,不确定这是否会造成冲突。我的struts.xml 在我的 WEB-INF 目录中。

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>

堆栈跟踪

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

【问题讨论】:

    标签: java struts2 jboss


    【解决方案1】:

    问题可能与您的 WAR 中的库有关。

    检查您的 Struts JAR 是

    • 两次未被收录
    • 不是不同的版本

    并确保您没有在 WAR 中打包不应该包含的库,因为服务器上已经可用(在这种情况下,您需要从构建过程中手动删除它们,或者将它们的范围设置为“提供”如果使用 Maven)。

    查看已由 JBOSS 7 处理的 the list of the implicit module dependencies

    【讨论】:

    • 谢谢。我现在看到这个错误“元素类型'action'的内容必须匹配(参数|结果|拦截器引用|异常映射)。这真的很令人沮丧,因为我无法解决错误 09:17:57,121 错误 [ com.opensymphony.xwork2.util.DomHelper] vfs:/C:/jboss-eap-6.1/bin/content/XXXXX.war/WEB-INF/classes/struts.xml; lineNumber: 22; columnNumber: 18; 内容元素类型“action”的必须匹配“(param|result|interceptor-ref|exception-mapping)*”。
    • 这是另一个问题,但你离终点更近了。检查您在 struts.xml 中的 标记中编写的内容,第 22 行。如果此答案对您有帮助,请将其标记为已接受。
    • 我已经验证该标签没有语法问题。这真的很令人沮丧,因为互联网上没有任何与该错误相关的内容。
    • @user2084840 如果您有新问题,请创建一个新问题; struts.xml 中不太可能没有错误,因为它没有验证。
    【解决方案2】:

    这是一个无意的错误,我认为 JBoss 没有在 struts 配置中进行修改...无论如何都已解决。谢谢。

    【讨论】:

      猜你喜欢
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多