понедельник, 2 июня 2014 г.

JBAS011006 / JBAS011054

Дано: spring framework 3.2 и jboss 7.X.

При старте в логе предупреждение:
WARN  [org.jboss.as.ee] (MSC service thread 1-6) JBAS011006: Not installing optional component org.springframework.web.context.request.async.StandardServletAsyncWebRequest due to exception: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS011054: Could not find default constructor for class org.springframework.web.context.request.async.StandardServletAsyncWebRequest
    at org.jboss.as.ee.component.ComponentDescription$DefaultComponentConfigurator.configure(ComponentDescription.java:606)
    at org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:81)
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.0.Final.jar:7.1.0.Final]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_25]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_25]
    at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
Причина кроется в классе StandardServletAsyncWebRequest, в котором нет публичного пустого конструктора, а только лишь:
public StandardServletAsyncWebRequest(HttpServletRequest request, HttpServletResponse response) {
        super(request, response);
}
На работу это предупреждение не влияет (по крайней мере, описания проблем именно из-за этого не встречал).

Если же вы относитесь к тем людям, которые считают, что корректно работающее приложение не должно содержать в своём логе никаких подобных предупреждений и стектрейсов, то можно "тупо" подавить логирование этих строк в конфигурационном файле (standalone.xml, например).
В jboss-as-7.1:
<subsystem xmlns="urn:jboss:domain:logging:1.1">
    <console-handler name="CONSOLE">
        <filter>
            <not>
                <match pattern="JBAS011054|JBAS011006"/>
            </not>
        </filter>
    </console-handler>
</subsystem>
В jboss-as-7.2 синтаксис немного другой:
<subsystem xmlns="urn:jboss:domain:logging:1.2">
    <console-handler name="CONSOLE">
       <filter value='not(match("JBAS011054"))' />
    </console-handler>
</subsystem>

Комментариев нет:

Отправить комментарий