JBoss failed to start when adding system property org.apache.tomcat.util.ENABLE_MODELER=true along with using APR and NIO connectors in EAP 6.1.0 onwards

Solution Verified - Updated

Environment

  • Red Hat JBoss Enterprise Application Platform (EAP)
    • 6.1.0
    • 6.1.1
    • 6.2.0
  • Native APR or NIO connector

Issue

JBoss failed to start with the following ERROR when system property org.apache.tomcat.util.ENABLE_MODELER=true was added along with using Native APR and NIO connectors in EAP 6.1.x:

ERROR [org.apache.coyote.http11] (MSC service thread 1-2) JBWEB003044: Threadpool JMX registration failed: javax.management.MalformedObjectNameException: Invalid character ':' in value part of property
     at javax.management.ObjectName.construct(ObjectName.java:618) [rt.jar:1.7.0_25]
     at javax.management.ObjectName.<init>(ObjectName.java:1382) [rt.jar:1.7.0_25]
     at org.apache.coyote.http11.Http11AprProtocol.start(Http11AprProtocol.java:120) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
     at org.apache.catalina.connector.Connector.start(Connector.java:1051) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
     at org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:274) [jboss-as-web-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
     at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
     at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
     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]

ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.web.connector.http: org.jboss.msc.service.StartException in service jboss.web.connector.http: JBAS018007:Error starting web connector
     at org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:277)
     at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
     at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
     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]
 Caused by: LifecycleException:  JBWEB000024: Protocol handler start failed
     at org.apache.catalina.connector.Connector.start(Connector.java:1053)
     at org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:274)

Resolution

  • Upgrade to EAP 6.2.3 (CP03) or later.
  • This only impacts NIO/APR connectors on 6.1.0+. Until this is fixed, please do not set org.apache.tomcat.util.ENABLE_MODELER=true when you are using Native APR connectors or NIO connectors. Please use default Java connectors instead. It can be used with org.apache.tomcat.util.ENABLE_MODELER=true.

Root Cause

Components
Category

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.