如何决定 java.net.BindException: 地址已使用

我正在尝试配置服务器 tomcat 8 在 ubuntu 14 通过数字海洋在这本教科书的帮助下
http://https://www.digitalocea ... 14-04
. 但我无法进入屏幕保护程序 tomcat.

一切顺利,直到我到达我开始的舞台 tomcat

sudo initctl start tomcat

这返回了一条消息

tomcat start/running, 过程 9180

但是当我输入的时候 url

my-droplet-ip-address:8080

屏幕保护程序永远不会加载。

我读过你可以开始 tomcat 从

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, 避免此错误。 但它继续发生,无论我做什么。

我最近看到了这个链接

https://www.digitalocean.com/c ... ava-7
建议

也许这是由于熵来源的问题。 设置参数

-Djava.security.egd=file:/dev/./urandom 无论是in. catalina.sh, 无论是in. /etc/default/tomcat .

问题是我找不到文件 /etc/default/tomcat 我无法理解在哪里 catalina.sh 添加作者提供的此字符串。

为什么我无法跑 tomcat, 到达屏幕保护程序? 这是一个与之相关的问题 entroy source? 如果是这样,那么在哪里 catalina.sh 这个字符串吗? 如果没有,那么对我如何解决这个问题的任何建议都将得到理解。
已邀请:

詹大官人

赞同来自:

如您所知,此问题的主要原因是您的应用程序正在尝试连接到特定端口,这些端口已被其他一些进程或 Java, 无论是ne。 Java.
这是你的答案:

在你的中找到这四个港口 server.xml

HTTP/1.1

Tomcat 管理员端口。

AJP/1.3

SSL /如果打开了/.

使用命令 netstat, 要了解哪个进程使用这些端口。


netstat -nap | grep <port>


现在,由于您找到了进攻进程,您可以杀死此过程并重新启动您的如果杀害此过程是相等的 OK, 否则,更改您的端口 server.xml

为每个人做 4 端口和重新启动 tomcat. 退房 catalina.out, 如果一切顺利,您可以访问您的应用程序。

这是一个与之相关的问题 entroy source? 如果是这样,究竟在哪里
catalina.sh 这条线路了吗?

我不知道它是否与源连接 entroy 或不,但你可以放
-Djava.security.egd=file:/dev/./urandom

在 catalina.sh. 找
JAVA_OPTS

在 catalina.sh 并将它放在那里,用逗号分隔一个点/;/ 使用现有值。

如果您正在使用 Eclips IDE, 让我知道。 这一切都很简单。
我希望它会有所帮助。
</port>

要回复问题请先登录注册