JBoss 从 JBoss 4.2 迁移时出现 wildfly 10 NoClassDefFoundError

JBoss wildfly 10 NoClassDefFoundError at migrate from JBoss 4.2

我有一个 spring mvc 应用程序 运行 到 JBoss 4.2。我正在尝试将此网络应用程序迁移到 JBoss wildfly 10(wildfly-10.0.0.Final 版本)。

当我尝试部署我的应用程序时显示此错误:

"{\"WFLYCTL0080: Failed services\" => {\"jboss.deployment.unit.\\"myApp.war\\".POST_MODULE\" => \"org.jboss.msc.service.StartException in service jboss.deployment.unit.\\"myApp.war\\".POST_MODULE: WFLYSRV0153: Failed to process phase POST_MODULE of deployment \\"myApp.war\\"
Caused by: java.lang.RuntimeException: WFLYSRV0177: Error getting reflective information for class org.ajaxtags.tags.AjaxDisplayTag with ClassLoader ModuleClassLoader for Module \\"deployment.myApp.war:main\\" from Service Module Loader
Caused by: java.lang.NoClassDefFoundError: au/id/jericho/lib/html/Segment
Caused by: java.lang.ClassNotFoundException: au.id.jericho.lib.html.Segment from [Module \\"deployment.myApp.war:main\\" from Service Module Loader]\"}}"

在网上搜索,我看到我需要加载 jar "jericho-html-2.6.1.jar"。为此,我添加了 ${wildfly_home}/modules/system/layers/base/au/id/jericho/lib/html/main jericho-html-2.6.1.jar 和这个 module.xml

<?xml version="1.0" encoding="UTF-8"?>
    <module xmlns="urn:jboss:module:1.1" name="au.id.jericho.lib.html">
    <resources>
        <resource-root path="jericho-html-2.6.1.jar"/>
    </resources>
    <dependencies>
    </dependencies>
</module>

我在standalone.xml

中添加了扩展
<extension module="au.id.jericho.lib.html"/>

但我得到同样的错误。

为什么要在 standalone.xml 中添加扩展名?? 您应该将 WEB-INF/jboss-deployment-structure.xml 文件添加到您的 war 中:

<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="au.id.jericho.lib.html" />
        </dependencies>
    </deployment>
</jboss-deployment-structure>