代码之家  ›  专栏  ›  技术社区  ›  briarheart

JBoss AS 7.1.1和动态过滤器实例注册

  •  0
  • briarheart  · 技术社区  · 8 年前

    在我们的web应用程序中,我们需要使用 ServletContext#addFilter(String filterName, Filter filter) .某些筛选器可能没有默认构造函数。 它在Tomcat(8.5.24)上运行得非常好,但我们的一些客户使用JBoss AS 7.1.1,在这方面我们面临以下问题:

    Exception starting filter myFilter: java.lang.InstantiationException: our.company.MyFilter
        at java.lang.Class.newInstance(Class.java:368) [rt.jar:1.7.0_80]
        at org.jboss.as.web.deployment.WebInjectionContainer.newInstance(WebInjectionContainer.java:80) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
        at org.jboss.as.web.deployment.WebInjectionContainer.newInstance(WebInjectionContainer.java:72) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:441) [jbossweb-7.0.13.Final.jar:]
        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3269) [jbossweb-7.0.13.Final.jar:]
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:3865) [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_80]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_80]
        at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_80]
    

    JBoss似乎试图实例化过滤器,尽管它在注册过程中已经被实例化。最后,它失败了,因为在 our.company.MyFilter .这个问题有解决办法吗?

    0 回复  |  直到 8 年前