5 Replies Latest reply on Mar 14, 2014 5:05 AM by jaikiran pai

    Port conflict on jboss 7 ONLY with Java 7 (not 6) on any specified port

    creatureoflegend Newbie

      So, I'm having a very interesting issue. I'm trying to set up jboss 7 to use 2 IPs and java 7. The 2 IPs work with java 6, but as soon as I switch to 7, there is always a port conflict on whatever port I designate as HTTPS. The java version is, literally, the only variable that effects this. I've tried jdk1.7.0_40, and jdk1.7.0_51 with same exact results.

       

      Before start up, I check the ports I'm about to use w/ "netstat -ab" to make sure nothing else is eating them up. Tried many different numbers with no success.

       

      Here is the error part of the log when starting with java 7:

       

      [code]

      19:09:40,748 INFO  [org.apache.coyote.http11] (MSC service thread 1-1) JBWEB003001: Coyote HTTP/1.1 initializing on : http-/0.0.0.0:28181

      19:09:40,748 INFO  [org.apache.coyote.http11] (MSC service thread 1-1) JBWEB003000: Coyote HTTP/1.1 starting on: http-/0.0.0.0:28181

      19:09:40,998 INFO  [org.jboss.as.remoting] (MSC service thread 1-2) JBAS017100: Listening on 0.0.0.0:24447

      19:09:41,482 ERROR [org.apache.coyote.http11] (MSC service thread 1-2) JBWEB003043: Error initializing endpoint: java.net.BindException: Address already in use: JVM_Bind /0.0.0.0:28443

          at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:973) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]

          at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:174) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]

          at org.apache.catalina.connector.Connector.init(Connector.java:982) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]

          at org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:273) [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]

          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_51]

          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]

          at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]

       

       

      19:09:41,498 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.web.connector.HTTPS: org.jboss.msc.service.StartException in service jboss.web.connector.HTTPS: 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_51]

          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]

          at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]

      Caused by: LifecycleException:  JBWEB000023: Protocol handler initialization failed

          at org.apache.catalina.connector.Connector.init(Connector.java:984)

          at org.jboss.as.web.WebConnectorService.start(WebConnectorService.java:273)

          ... 5 more

      [/code]

      Here is the same area in the same jboss with the only thing being changed is the java version (jdk1.6.0_17):

       

      [code]

      19:05:39,811 INFO  [org.apache.coyote.http11] (MSC service thread 1-2) JBWEB003001: Coyote HTTP/1.1 initializing on : http-/0.0.0.0:28181

      19:05:39,826 INFO  [org.apache.coyote.http11] (MSC service thread 1-2) JBWEB003000: Coyote HTTP/1.1 starting on: http-/0.0.0.0:28181

      19:05:39,842 INFO  [org.jboss.as.connector.logging] (MSC service thread 1-2) JBAS010408: Starting JCA Subsystem (IronJacamar 1.0.17.Final-redhat-1)

      19:05:40,764 INFO  [org.apache.coyote.http11] (MSC service thread 1-2) JBWEB003001: Coyote HTTP/1.1 initializing on : http-/myFirstIpCensoredForSecurityPurposes:28443

      19:05:40,764 INFO  [org.apache.coyote.http11] (MSC service thread 1-2) JBWEB003000: Coyote HTTP/1.1 starting on: http-/myFirstIpCensoredForSecurityPurposes:28443

      19:05:40,998 INFO  [org.apache.coyote.http11] (MSC service thread 1-2) JBWEB003001: Coyote HTTP/1.1 initializing on : http-/mySecondIpCensoredForSecurityPurposes:28443

      19:05:41,014 INFO  [org.apache.coyote.http11] (MSC service thread 1-2) JBWEB003000: Coyote HTTP/1.1 starting on: http-/mySecondIpCensoredForSecurityPurposes:28443

      [/code]

      Here is the standalone.xml that configures the domains (the port number is actually passed in dynamically through the windows service, so they will differ. But they are the same ones that are erroring out on java 7 and not java 6).

       

      [code]

      ...

          <subsystem xmlns="urn:jboss:domain:web:1.4" default-virtual-server="default-host" native="false">

              <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>

              <connector name="HTTPS" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">

                  <ssl name="https" key-alias="tomcat" password="changeme" certificate-key-file="${jboss.server.config.dir}/iAmAKeyStore.jks"/>

              </connector>

              <connector name="myFirstDomainSocketBindingConnector" protocol="HTTP/1.1" scheme="https" socket-binding="myFirstDomainSocketBinding" secure="true">

                  <ssl name="myFirstDomainSocketBindingSSL" key-alias="theAlias" password="iAmAPassword" certificate-key-file="${jboss.server.config.dir}/myFirstDomainKeystore.jks"/>

              </connector>

              <connector name="mySecondDomainSocketBindingConnector" protocol="HTTP/1.1" scheme="https" socket-binding="mySecondDomainSocketBinding" secure="true">

                  <ssl name="mySecondDomainSocketBindingSSL" key-alias="theSecondAlias" password="iAmAPasswordToo" certificate-key-file="${jboss.server.config.dir}/mySecondDomainKeystore.jks"/>

              </connector>

              <virtual-server name="default-host" enable-welcome-root="false">

                  <alias name="localhost"/>

                  <alias name="example.com"/>

              </virtual-server>

          </subsystem>

          <subsystem xmlns="urn:jboss:domain:webservices:1.2">

              <modify-wsdl-address>true</modify-wsdl-address>

              <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>

              <endpoint-config name="Standard-Endpoint-Config"/>

              <endpoint-config name="Recording-Endpoint-Config">

                  <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">

                      <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>

                  </pre-handler-chain>

              </endpoint-config>

              <client-config name="Standard-Client-Config"/>

          </subsystem>

          <subsystem xmlns="urn:jboss:domain:weld:1.0"/>

      </profile>

       

       

      <interfaces>

          <interface name="firstDomainInterface">

              <inet-address value="myFirstIpCensoredForSecurityPurposes"/>

          </interface>

          <interface name="secondDomainInterface">

              <inet-address value="mySecondIpCensoredForSecurityPurposes"/>

          </interface>

          <interface name="management">

              <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>

          </interface>

          <interface name="public">

              <inet-address value="${jboss.bind.address:0.0.0.0}"/>

          </interface>

          <interface name="unsecure">

              <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>

          </interface>

      </interfaces>

       

       

      <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">

          <socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/>

          <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>

          <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/>

          <socket-binding name="ajp" port="8009"/>

          <socket-binding name="http" port="${jboss.http.port:80}"/>

          <socket-binding name="https" port="${jboss.https.port:443}"/>

          <socket-binding name="myFirstDomainSocketBinding" interface="firstDomainInterface" port="${jboss.https.port:443}"/>

          <socket-binding name="mySecondDomainSocketBinding" interface="secondDomainInterface" port="${jboss.https.port:443}"/>

          <socket-binding name="remoting" port="4447"/>

          <socket-binding name="txn-recovery-environment" port="4712"/>

          <socket-binding name="txn-status-manager" port="4713"/>

          <outbound-socket-binding name="mail-smtp">

              <remote-destination host="localhost" port="25"/>

          </outbound-socket-binding>

      </socket-binding-group>

      [/code]

       

      Jboss version: JBoss EAP 6.1.0.GA (AS 7.2.0.Final-redhat-8)

      Environment: Windows Server 2008 R2, 4gb ram, 64 bit

      Java: jdk1.7.0_51/jdk1.6.0_17

       

      Note: I tried asking this on stack overflow: no responses. Hoping to have better luck here.