xml - wildfly 不从 web.xml 加载类

标签 xml exception web.xml wildfly wildfly-8

无法运行 war ,因为我在 wildfly 中配置了所有模块, 这场 war 在具有相同 web.xml 配置的 jboss 6 中运行良好,当我在所有迁移设置之后部署在 wildfly 中时,我得到 classNotFound 异常,因为我在 web.xml 中几乎没有 servlet 映射

更多信息请在下面找到

在 Wildfly 中低于异常:

这里是 web.xml

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd” 版本="2.5">

  <display-name>Test </display-name>
  <context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>messages</param-value>
  </context-param>
  <filter>
    <filter-name>exportFilter</filter-name>
    <filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class>
  </filter>
  <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter>
    <filter-name>messageFilter</filter-name>
    <filter-class>com.Test.us.web.MessageFilter</filter-class>
  </filter>
  <filter>
</web-app>

这是我的日志:

17:16:04,774 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC0000
01: Failed to start service jboss.undertow.deployment.default-server.default-hos
t./.UndertowDeploymentInfoService: org.jboss.msc.service.StartException in servi
ce jboss.undertow.deployment.default-server.default-host./.UndertowDeploymentInf
oService: java.lang.ClassNotFoundException: com.Test.us.web.MessageFilter fr
om [Module "deployment.TestRWD_JB60_Testing.war:main" from Service Module Lo
ader]
        at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoServi
ce.createServletConfig(UndertowDeploymentInfoService.java:933)
        at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoServi
ce.start(UndertowDeploymentInfoService.java:256)
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(Se
rviceControllerImpl.java:1948) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceCont
rollerImpl.java:1881) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1142) [rt.jar:1.8.0_40]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:617) [rt.jar:1.8.0_40]
        at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_40]
Caused by: java.lang.ClassNotFoundException: com.Test.us.web.MessageFilter f
rom [Module "deployment.TestRWD_JB60_Testing.war:main" from Service Module L
oader]
        at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:
213) [jboss-modules.jar:1.3.3.Final]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(Con
currentClassLoader.java:459) [jboss-modules.jar:1.3.3.Final]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(Concu
rrentClassLoader.java:408) [jboss-modules.jar:1.3.3.Final]
        at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentCl
assLoader.java:389) [jboss-modules.jar:1.3.3.Final]
        at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoad
er.java:134) [jboss-modules.jar:1.3.3.Final]
        at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoServi
ce.createServletConfig(UndertowDeploymentInfoService.java:724)
        ... 6 more


17:16:04,861 ERROR [org.jboss.as.controller.management-operation] (DeploymentSca
nner-threads - 2) JBAS014613: Operation ("deploy") failed - address: ([("deploym
ent" => "TestRWD_JB60_Testing.war")]) - failure description: {"JBAS014671: F
ailed services" => {"jboss.undertow.deployment.default-server.default-host./.Und
ertowDeploymentInfoService" => "org.jboss.msc.service.StartException in service
jboss.undertow.deployment.default-server.default-host./.UndertowDeploymentInfoSe
rvice: java.lang.ClassNotFoundException: com.Test.us.web.MessageFilter from
[Module \"deployment.TestRWD_JB60_Testing.war:main\" from Service Module Loa
der]
    Caused by: java.lang.ClassNotFoundException: com.Test.us.web.MessageFilt
er from [Module \"deployment.TestRWD_JB60_Testing.war:main\" from Service Mo
dule Loader]"}}
17:16:05,048 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018
559: Deployed "TestRWD_JB60_Testing.war" (runtime-name : "TestRWD_JB60_T
esting.war")
17:16:05,052 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBA
S014774: Service status report
JBAS014777:   Services which failed to start:      service jboss.undertow.deploy
ment.default-server.default-host./.UndertowDeploymentInfoService: org.jboss.msc.
service.StartException in service jboss.undertow.deployment.default-server.defau
lt-host./.UndertowDeploymentInfoService: java.lang.ClassNotFoundException: com.Test.us.web.MessageFilter from [Module "deployment.TestRWD_JB60_Testing.w
ar:main" from Service Module Loader]
- See more at: https://developer.jboss.org/message/929842#929842

最佳答案

您的类 com.Test.us.web.MessageFilter 似乎对类加载器不可见。您可以在 2 个选项中放置类:

  1. 直接在WAR中部署

    • 要么在 WEB-INF/lib/some.jar
    • 或扩展到WEB-INF/classes
  2. 在自定义 WildFly 模块中。在这种情况下,您必须将模块依赖项添加到部署中。可以在以下文件中定义模块依赖项:

    • META-INF/MANIFEST.MF
    • 或在 META-INF/jboss-deployment-structure.xml

jboss-deployment-structure.xml 文件的示例内容是:

<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="your.custom.module"/>
        </dependencies>
    </deployment>
</jboss-deployment-structure>

关于xml - wildfly 不从 web.xml 加载类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30238030/

相关文章:

java - 使用 JAVA 检查指定的 XML 元素是否具有特定名称

Android - 水平(从右到左)圆形背景颜色过渡

xml - Booking.com酒店管理API

java - 使用 apache poi 读取 xlsx 时主线程中出现 NoSuchMethodError

java - 注册为 ServletContextListener 的类的生命周期是什么

java - web.xml 错误页面不工作,为什么?

java - Android CalendarView 年份文本颜色

java - java中未使用的异常并从映射中删除对象

java - 抛出异常时重定向请求

xml - 澄清我在 web.xml 中的 servlet 映射错误