tomcat启动提示“java.net.BindException: Cannot assign requested address”
近期因tomcat版本太旧,漏洞过多,优化升级后,重启报错,如下:
Nov 19, 2024 2:14:34 PM org.apache.catalina.deploy.WebXml setVersion
WARNING: Unknown version string [4.0]. Default version will be used.
Nov 19, 2024 2:14:34 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory [/usr/local/tomcat-3/webapps/getCpuInfo] has finished in [692] ms
Nov 19, 2024 2:14:34 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8083"]
Nov 19, 2024 2:14:34 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 741 ms
Nov 19, 2024 2:14:34 PM org.apache.catalina.core.StandardServer await
SEVERE: StandardServer.await: create[localhost:8053]:
java.net.BindException: Cannot assign requested address
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(Unknown Source)
at java.net.ServerSocket.bind(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:428)
at org.apache.catalina.startup.Catalina.await(Catalina.java:800)
at org.apache.catalina.startup.Catalina.start(Catalina.java:746)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:284)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415)
Nov 19, 2024 2:14:34 PM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-bio-8083"]
Nov 19, 2024 2:14:36 PM org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service [Catalina]
Nov 19, 2024 2:14:36 PM org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["http-bio-8083"]
当 Tomcat 7 出现java.net.BindException: Cannot assign requested address错误时,这通常意味着 Tomcat 试图绑定到一个本地 IP 地址和端口,但系统无法为其分配所请求的地址。
方法一:检查端口
使用netstat -tlnp命令(在 Linux 系统上)来查看当前系统中哪些进程正在使用端口。这个命令会列出所有正在监听(LISTEN状态)的 TCP 端口以及对应的进程 ID(PID)和进程名称。
方法二:IP 地址配置问题
Tomcat 可能被配置为绑定到一个不存在或无效的 IP 地址。例如,它可能被配置为绑定到一个特定的网络接口的 IP 地址,但该接口不存在或者处于不可用状态。
经过分析,本次所遇到的情况对应方法二,即服务器变更IP后,未及时清理本地hosts中地址,导致绑定了一个无效的IP。
此时,可使用cat /etc/hosts查看地址

使用vi /etc/hosts进入后编辑,将失效IP更改即可。
更多推荐

所有评论(0)