【问题标题】:JBoss AS 7.1.1 - Filter mapping specifies an unknown filter name CDI Conversation FilterJBoss AS 7.1.1 - 过滤器映射指定未知过滤器名称 CDI 对话过滤器
【发布时间】:2014-06-22 21:06:53
【问题描述】:

当我将应用程序部署到 JBoss AS 7.1.1 时出现以下异常。

将同一应用程序部署到 Glassfish 3 或 4 时,CDI 对话过滤器没有任何问题。

22:53:33,911 ERROR [org.apache.catalina.core.StandardContext] (MSC service thread 1-5) Context [/basic-angularjs-ee] startup failed due to previous errors: java.lang.IllegalArgumentException: Filter mapping specifies an unknown filter name CDI Conversation Filter
    at org.apache.catalina.core.StandardContext.validateFilterMap(StandardContext.java:2040) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.core.StandardContext.addFilterMap(StandardContext.java:1996) [jbossweb-7.0.13.Final.jar:]
    at org.jboss.as.web.deployment.JBossContextConfig.processWebMetaData(JBossContextConfig.java:314) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.web.deployment.JBossContextConfig.applicationWebConfig(JBossContextConfig.java:169) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:417) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:182) [jbossweb-7.0.13.Final.jar:]
    at org.jboss.as.web.deployment.JBossContextConfig.lifecycleEvent(JBossContextConfig.java:162) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:115) [jbossweb-7.0.13.Final.jar:]
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3790) [jbossweb-7.0.13.Final.jar:]
    at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_51]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]
    at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]

web.xml:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
     version="3.0">
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>

    <filter-mapping>
      <filter-name>CDI Conversation Filter</filter-name>
      <url-pattern>/resources/*</url-pattern>
   </filter-mapping>
</web-app>

【问题讨论】:

    标签: jboss jboss7.x cdi


    【解决方案1】:

    据我所知,过滤器名称是特定于平台的。过滤器的默认映射是/*,那么您真的需要更改映射吗?

    【讨论】:

    • 如果我将映射放在根目录下,我的长轮询 servlet 会出现异常
    • 此外,除了 Weld,我找不到任何有关 CDI 对话过滤器的信息。你还有其他指点吗?
    • 我想知道,你确定这适用于 GlassFish 3 吗?根据文档,您使用的名称仅在 CDI 1.1(GF4、WildFly 8)中可用。见这里:docs.jboss.org/weld/reference/2.1.2.Final/en-US/html/…
    • upps,我的 GF3 配置确实指向 GF4 安装。我想对于 CDI 1.0 (JEE6) 我将不得不求助于 Weld 特定的过滤器实现 WeldCrossContextFilter.java
    【解决方案2】:

    您必须编写类名,因为它是在过滤器将要使用的项目中编写的。不带空格和区分大小写。这看起来像问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-19
      • 2019-05-01
      • 2010-10-23
      • 2011-04-10
      • 2014-07-23
      • 2014-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多