简体   繁体   中英

java.net.BindException: Address already in use in tomcat

I am receiving error while trying to deploy web application in tomcat8.5

The war file is placed in CATALINA_BASE: ea-tomcat85/webapps/ROOT.war

I have try some steps to solve the error without success.

Step 1: I kill the process running on port 8080

       #netstat -pant | grep "8080"
        tcp6       0      0 :::8080                 :::*                    LISTEN      511871/java

       #kill 511871

restarted tomcat but receiving the same error,Also

Step 2: change my application's port number in my application.properties to something like server.port=5815 . Still the same error.

Below is the configuration of server

Services in server.xml in CATALINA_BASE

        <Service name="Catalina">


<Connector port="10000" protocol="HTTP/1.1" connectionTimeout="20000" xpoweredBy="false"/>

<Connector executor="tomcatThreadPool"
           port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />


   
  
  <Realm className="org.apache.catalina.realm.LockOutRealm">
   
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
  </Realm>
  <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false" deployOnStartup="false" deployXML="false">
   
   
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b"/>
    <Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false"/>
  </Host>
</Engine>
<Connector port="10001" protocol="AJP/1.3" xpoweredBy="false" secretRequired="false"/>
</Service>

Services in server.xml in CATALINA_HOME

       <Service name="Catalina">

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

<Engine name="Catalina" defaultHost="localhost">

  <Realm className="org.apache.catalina.realm.LockOutRealm">
   
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
           resourceName="UserDatabase"/>
  </Realm>

  <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access_log" suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />

  </Host>
</Engine>
 </Service>

setenv.sh in CATALINA_BASE

     [root@xxx bin]# cat setenv.sh
     # Your customizations can go here, for example, CATALINA_OPTS
     # example from https://wiki.apache.org/tomcat/HowTo/FasterStartUp#Entropy_Source
     # Trade some security for startup speed by using non-blocking entropy:
     # CATALINA_OPTS="$CATALINA_OPTS -Djava.security.egd=file:/dev/./urandom"

     JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre
     CATALINA_PID="$CATALINA_BASE/bin/catalina.pid"

     # DO NOT EDIT THIS LINE OR ANYTHING BELOW THIS LINE
     . /opt/cpanel/ea-tomcat85/bin/user-setenv.sh
     [root@xxx bin]#

setenv.sh in CATALINA_HOME

     [root@xxx bin]# cat setenv.sh
     export CATALINA_OPTS="$CATALINA_OPTS -server -Dfile.encoding=UTF-8 -Xms128m -Xmx6248m"
     export CATALINA_PID="$CATALINA_BASE/bin/catalina.pid"
     export CATALINA_BASE="/home/wematanzania/ea-tomcat85"
     JRE_HOME= "/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre"
     [root@xxx bin]#

Error description in catalina.out file in CATALINA_BASE: /logs/catalina.out

21-May-2021 06:05:10.723 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
    21-May-2021 06:05:10.828 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-10000"]
    21-May-2021 06:05:10.841 SEVERE [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-10000]]
            org.apache.catalina.LifecycleException: Protocol handler initialization failed
                    at org.apache.catalina.connector.Connector.initInternal(Connector.java:1076)
                    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                    at org.apache.catalina.core.StandardService.initInternal(StandardService.java:552)
                    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                    at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:846)
                    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                    at org.apache.catalina.startup.Catalina.load(Catalina.java:639)
                    at org.apache.catalina.startup.Catalina.load(Catalina.java:662)
                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                    at java.lang.reflect.Method.invoke(Method.java:498)
                    at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:302)
                    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:472)
            Caused by: java.net.BindException: Address already in use
                    at sun.nio.ch.Net.bind0(Native Method)
                    at sun.nio.ch.Net.bind(Net.java:461)
                    at sun.nio.ch.Net.bind(Net.java:453)
                    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:222)
                    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:85)
                    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:222)
                    at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1143)
                    at org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:222)
                    at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:599)
                    at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:80)
                    at org.apache.catalina.connector.Connector.initInternal(Connector.java:1074)
                    ... 13 more
    21-May-2021 06:05:10.844 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
    21-May-2021 06:05:10.846 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
    21-May-2021 06:05:10.861 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-127.0.0.1-10001"]
    21-May-2021 06:05:10.862 SEVERE [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[AJP/1.3-10001]]
            org.apache.catalina.LifecycleException: Protocol handler initialization failed
                    at org.apache.catalina.connector.Connector.initInternal(Connector.java:1076)
                    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                    at org.apache.catalina.core.StandardService.initInternal(StandardService.java:552)
                    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                    at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:846)
                    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                    at org.apache.catalina.startup.Catalina.load(Catalina.java:639)
                    at org.apache.catalina.startup.Catalina.load(Catalina.java:662)
                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                    at java.lang.reflect.Method.invoke(Method.java:498)
                    at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:302)
                    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:472)
            Caused by: java.net.BindException: Address already in use
                    at sun.nio.ch.Net.bind0(Native Method)
                    at sun.nio.ch.Net.bind(Net.java:461)
                    at sun.nio.ch.Net.bind(Net.java:453)
                    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:222)
                    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:85)
                    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:222)
                    at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1143)
                    at org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:222)
                    at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:599)
                    at org.apache.catalina.connector.Connector.initInternal(Connector.java:1074)
                    ... 13 more
    21-May-2021 06:05:10.862 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 981 ms
    21-May-2021 06:05:10.898 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
    21-May-2021 06:05:10.898 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/8.5.66]
    21-May-2021 06:05:10.910 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
    21-May-2021 06:05:10.924 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 61 ms

Update : port 10000 and 10001

 [root@xxx logs]# netstat -pant | grep "10000" 
    tcp6 0 0 :::10000 :::* LISTEN 503271/java 
    [root@xxx logs]# netstat -pant | grep "10001" 
    tcp6 0 0 127.0.0.1:10001 :::* LISTEN 503271/java 
    [root@xxx logs]# 

Also while starting tomcat I receive the below output.

[root@xxx bin]# ./startup.sh
/opt/cpanel/ea-tomcat85/bin/setenv.sh: line 4: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre: Is a directory
Using CATALINA_BASE:   /home/profile/ea-tomcat85
Using CATALINA_HOME:   /opt/cpanel/ea-tomcat85
Using CATALINA_TMPDIR: /home/profile/ea-tomcat85/temp
Using JRE_HOME:        /
Using CLASSPATH:       /opt/cpanel/ea-tomcat85/bin/bootstrap.jar:/opt/cpanel/ea-tomcat85/bin/tomcat-juli.jar
Using CATALINA_OPTS:    -server -Dfile.encoding=UTF-8 -Xms128m -Xmx6248m
Using CATALINA_PID:    /opt/cpanel/ea-tomcat85/bin/catalina.pid
Tomcat started.

Iam not so sure if JRE_HOME: / has to be like that. But the path are set in both setenv.sh files

Update: After commenting out connector on port 10000 and 10001, And changed the port of tomcat in application.properties back to server.port=8080

I receive the below error from the browser浏览器错误

Catalina.out in CATALINA_BASE: logs/catalina.out

21-May-2021 11:18:09.524 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/8.5.66
21-May-2021 11:18:09.526 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          May 8 2021 22:44:01 UTC
21-May-2021 11:18:09.526 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 8.5.66.0
21-May-2021 11:18:09.527 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
21-May-2021 11:18:09.527 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            3.10.0-1127.19.1.el7.x86_64
21-May-2021 11:18:09.527 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
21-May-2021 11:18:09.527 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre
21-May-2021 11:18:09.527 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           1.8.0_292-b10
21-May-2021 11:18:09.527 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Red Hat, Inc.
21-May-2021 11:18:09.527 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /home/profile/ea-tomcat85
21-May-2021 11:18:09.527 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /opt/cpanel/ea-tomcat85
21-May-2021 11:18:09.528 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/home/profile/ea-tomcat85/conf/logging.properties
21-May-2021 11:18:09.528 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
21-May-2021 11:18:09.528 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
21-May-2021 11:18:09.528 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
21-May-2021 11:18:09.528 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
21-May-2021 11:18:09.528 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dfile.encoding=UTF-8
21-May-2021 11:18:09.528 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms128m
21-May-2021 11:18:09.528 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx6248m
21-May-2021 11:18:09.528 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
21-May-2021 11:18:09.529 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/home/profile/ea-tomcat85
21-May-2021 11:18:09.529 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/opt/cpanel/ea-tomcat85
21-May-2021 11:18:09.529 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/home/profile/ea-tomcat85/temp
21-May-2021 11:18:09.529 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
21-May-2021 11:18:09.617 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
21-May-2021 11:18:09.631 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
21-May-2021 11:18:09.654 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 664 ms
21-May-2021 11:18:09.690 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
21-May-2021 11:18:09.701 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/8.5.66]
21-May-2021 11:18:09.711 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
21-May-2021 11:18:09.722 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 68 ms

And the ROOT.war does not get unpacked inside CATALINA_BASE: /home/profile/ea-tomcat85/webapps/ROOT.war

This is my first time deploying a war file in live tomcat server, I have read a lot of post regarding this,but still I dont know what exactly am I doing wrong.Kindly assist. Thanks in advance.

The java.net.BindException: was solved with the scenario provided above together with help from the comments.

But the Internal Server Error was caused by missing module setEnv in server configuration of tomcat. Added that module to the server I could access the application without an error.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM