-
Bug
-
Resolution: Done
-
Critical
-
7.0.0.Beta1
-
None
Problem occurs during JBoss startup.
16:43:00,465 ERROR [org.jboss.msc] (pool-1-thread-3) MSC-00001: Failed to start service jboss.web.connector.http: org.jboss.msc.service.StartException in service jboss.web.connector.http: Failed to start service
at org.jboss.msc.service.ServiceInstanceImpl$StartTask.run(ServiceInstanceImpl.java:1207)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_20]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_20]
at java.lang.Thread.run(Thread.java:619) [:1.6.0_20]
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.tomcat.jni.OS
at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:573)
at org.apache.coyote.http11.Http11AprProtocol.init(Http11AprProtocol.java:115)
at org.apache.catalina.connector.Connector.initialize(Connector.java:1018)
at org.apache.catalina.core.StandardService.addConnector(StandardService.java:351)
at org.jboss.as.web.WebServerService.addConnector(WebServerService.java:124)
at org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:90)
at org.jboss.msc.service.ServiceInstanceImpl$StartTask.run(ServiceInstanceImpl.java:1163)
... 3 more
IMHO problem is that org.apache.catalina.connector.Connector exposes method setProtocol whereas protocolHandler instantiation is being conducted in constructor, so method setProtocol is kind of meaningless.
I have found that in jboss-as-web module, Connector is being created ( with protocolHandler initialized during object creation ) and then protocol is set using setProtocol which actually doesn't change appropriate protocolHandler.
In other words, if I will create Connector using constructor without any params, it will guess protocolHandler and then I will set my favourite protocol it won't affect my procotol handler.
Having this I can get the situation where I will have protocolHandler: "org.apache.coyote.http11.Http11AprProtocol" and protocol: "org.apache.coyote.ajp.AjpAprProtocol"