Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解决java.net.BindException:地址已在使用中_Java_Linux_Ubuntu 14.04_Digital Ocean_Tomcat8 - Fatal编程技术网

如何解决java.net.BindException:地址已在使用中

如何解决java.net.BindException:地址已在使用中,java,linux,ubuntu-14.04,digital-ocean,tomcat8,Java,Linux,Ubuntu 14.04,Digital Ocean,Tomcat8,通过本教程,我试图通过数字海洋在Ubuntu14上安装Tomcat8服务器。但是我无法访问tomcat的启动页面 一切都很顺利,直到我走到开始tomcat的那一步 sudo initctl启动tomcat 这将返回一条消息 tomcat启动/运行,流程9180 但是当我输入url时 我的水滴ip地址:8080 启动页面从不加载 我已经读到你可以用 sh startup.sh 虽然当我这样做时,catalina.out会给我错误消息 31-Jul-2016 05:37:41.018 INFO [m

通过本教程,我试图通过数字海洋在Ubuntu14上安装Tomcat8服务器。但是我无法访问tomcat的启动页面

一切都很顺利,直到我走到开始tomcat的那一步

sudo initctl启动tomcat

这将返回一条消息

tomcat启动/运行,流程9180

但是当我输入url时

我的水滴ip地址:8080

启动页面从不加载

我已经读到你可以用

sh startup.sh

虽然当我这样做时,catalina.out会给我错误消息

31-Jul-2016 05:37:41.018 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
31-Jul-2016 05:37:41.086 SEVERE [main] org.apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["http-nio-8080"]
 java.net.BindException: Address already in use
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:433)
    at sun.nio.ch.Net.bind(Net.java:425)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:229)
    at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:866)
    at org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:213)
    at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:558)
    at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:65)
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:1010)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
    at org.apache.catalina.core.StandardService.initInternal(StandardService.java:549)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
    at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:873)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:606)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:629)
    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:311)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:494)

31-Jul-2016 05:37:41.089 SEVERE [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-8080]]
 org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8080]]
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:111)
    at org.apache.catalina.core.StandardService.initInternal(StandardService.java:549)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
    at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:873)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:606)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:629)
    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:311)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:494)
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:1012)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
    ... 12 more
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:433)
    at sun.nio.ch.Net.bind(Net.java:425)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:229)
    at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:866)
    at org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:213)
    at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:558)
    at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:65)
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:1010)
    ... 13 more

31-Jul-2016 05:37:41.091 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8181"]
31-Jul-2016 05:37:41.105 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
31-Jul-2016 05:37:41.117 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 1568 ms
31-Jul-2016 05:37:41.180 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina
31-Jul-2016 05:37:41.180 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.4
31-Jul-2016 05:37:41.211 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /opt/tomcat/webapps/host-manager
我检查了sudo lsof-I使用的端口,并尝试终止使用tomcat所需端口的进程,以及更改server.xml中的各种端口以避免此错误。但不管我做什么,它总是发生

我最近也看到了这个链接

这表明

这可能是由于熵源问题。设置选项

-Djava.security.egd=catalina.sh或/etc/default/tomcat中的文件:/dev//uradom

问题是我找不到文件/etc/default/tomcat,也找不出在catalina.sh中添加作者建议的这一行的位置


为什么我不能启动tomcat进入启动页面?这真的是与entroy source有关的问题吗?如果是的话,这条线在catalina.sh的什么地方?如果没有,请提供我如何解决此问题的任何建议。

因为您已经知道此问题的根本原因是您的应用程序试图连接到某个特定端口,而该端口已被其他一些Java或非Java进程使用。 这是你的答案:

在server.xml中找到这四个端口

  • HTTP/1.1
  • Tomcat管理端口
  • AJP/1.3
  • SSL(如果启用)
  • 使用netstat命令查找哪个进程正在使用这些端口

    netstat -nap | grep <port>
    
    netstat-nap | grep
    
    现在,既然您发现了一个有问题的进程,您可以终止该进程并重新启动您的进程,如果终止该进程没有问题,否则,请更改server.xml中的端口

    对所有4个端口执行此操作,然后重新启动tomcat。检查catalina.out,如果一切顺利,您将能够访问您的应用程序

    这真的是与entroy source有关的问题吗?如果有,在哪里 catalina.sh这条线走了吗

    我不知道它是否与entroy source相关,但您可以将
    -Djava.security.egd=file:/dev//uradom
    放入catalina.sh。在catalina.sh中找到
    JAVA_OPTS
    ,并用分号(;)和现有值分隔

    如果你正在使用Eclips IDE,请告诉我。这都很简单。
    希望能有所帮助。

    我认为问题在于,当您尝试使用
    sh startup.sh启动tomcat时,您无法启动,因为作为服务启动的实例已经在使用端口。您可以使用
    netstat
    命令查看哪些端口正在使用以及通过哪些进程使用。address in use表示另一个应用程序正在使用您试图启动tomcat的端口地址,如@Titus所说,或者它是另一个应用程序。谢谢您的帮助。我仍然无法在tomcat上部署应用程序,但至少我找到了问题中所述问题的原因。Netstat是一个很好的解决方案,可以查看哪些进程正在使用哪些端口。@Dan不客气。分享您现在遇到的异常,查看catalina.out以获得进一步帮助。