"Address already in use" appears in catalina.out or catalina.log or when running the configtest.sh command or when attempting to start a JVM.
java.net.BindException: Address already in use
This error means there is another process on the server using the port that the Tomcat JVM is configured to use. The stack trace error may identify the port that cannot be bound (8080 in this example).
You should be able to verify that the JVM is configured to use the port that cannot be bound (8080 in this example).
Ensure that the JVM is using unique ports for each protocol. For example, if both HTTP and HTTPS are using the same port, this will produce "Address already in use".
Sometimes, grep may spot two JVMs using the same port.
grep -R /path/to/tomcat/profiles -ie 'nio.http.port=8080'
Or, the netstat command may also be able to identify the other process on the server that is using the port.
~]# netstat | grep 8080
If Tomcat is the only service using the port on the server, there may be some issue with Java. Determine the PID being used by Java.
~]# ps -ef | grep Java 12345 . . .
Kill the Java process.
~]# kill -9 12345
If the error persists, there may be some problem with one of the webapps. Debugging issues with a webapp typicall requires that you work with the application developer. There are far too many possible application issues to list here.