OneClick Tomcat won't startup due to java.net.BindException

Document ID : KB000032837
Last Modified Date : 14/02/2018
Show Technical Document Details

Problem:

OneClick Tomcat won't startup due to java.net.BindException exception because default shutdown port, i.e. TCP/8005 was being used by other process. OneClick Tomcat log shows the following exception.

SEVERE: StandardServer.await: create[localhost:8005]: 
java.net.BindException: Address already in use: JVM_Bind
at java.net.DualStackPlainSocketImpl.bind0(Native Method)
at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:426)
at org.apache.catalina.startup.Catalina.await(Catalina.java:777)
at org.apache.catalina.startup.Catalina.start(Catalina.java:723)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)

Environment:

This problem may happen on any platform where OneClick server component from any Spectrum version is installed.

Cause:

Tomcat shutdown port, i.e. by default TCP/8005, has been used by other process. Because of that, OneClick Tomcat cannot allocate this port during start up. This happens typically when you install CABI on the same machine. When CABI Tomcat was running the default shutdown port TCP/8005 was being used so OneClick Tomcat won't be able to allocate the port.

Resolution:

We can reconfigure OneClick Tomcat to use different available TCP port, e.g. TCP/8006, for shutdown port. You can do the following steps.

1. Run the following netstat command to make sure that the TCP port you want to allocate is not being used. You should not get any entry as output of the command when the port is not being used.

On Windows:

netstat -aon | grep <port number>

On Linux/Solaris:

netstat -an | grep <port number>

Note: Replace <port number> with the new port number you want to use

2. Backup $SPECROOT/tomcat/conf/server.xml file and use vi editor or other text editor to modify

From

<Server port="8005" shutdown="SHUTDOWN">

To

<Server port="<new port number>" shutdown="SHUTDOWN">

Note: Replace <new port number> with the new port number you want to use

3. Restart OneClick Tomcat