JBoss AS 7.1.1 и регистрация экземпляра динамического фильтра - PullRequest
0 голосов
/ 06 сентября 2018

В нашем веб-приложении нам нужно динамически регистрировать предварительно сконфигурированные экземпляры фильтров, используя 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.Есть ли обходной путь для этой проблемы?

...