Tomcat启动时报错:java.net.BindException: Permission denied :80

阅读更多

问题描述:Tomcat启动时报一系列错误:

问题1:

1
2
SEVERE: Error starting endpoint java.net.BindException: Permission denied < null >: 80
at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java: 549 ) at org.apache.tomcat.util.net.JIoEndpoint.start(JIoEndpoint.java: 565 ) at org.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java: 203 ) at org.apache.catalina.connector.Connector.start(Connector.java: 1087 ) at org.apache.catalina.core.StandardService.start(StandardService.java: 534 ) at org.apache.catalina.core.StandardServer.start(StandardServer.java: 710 ) at org.apache.catalina.startup.Catalina.start(Catalina.java: 581 ) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39 ) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25 ) at java.lang.reflect.Method.invoke(Method.java: 597 ) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java: 289 ) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java: 414 )

问题2:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SEVERE: StandardServer.await: create[ 8005 ]:  
java.net.BindException: Address already in use 
at java.net.PlainSocketImpl.socketBind(Native Method) 
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java: 383
at java.net.ServerSocket.bind(ServerSocket.java: 328
at java.net.ServerSocket.(ServerSocket.java: 194
at org.apache.catalina.core.StandardServer.await(StandardServer.java: 373
at org.apache.catalina.startup.Catalina.await(Catalina.java: 662
at org.apache.catalina.startup.Catalina.start(Catalina.java: 614
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25
at java.lang.reflect.Method.invoke(Method.java: 597
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java: 289
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java: 414 )
原因分析:
问题1:在Linux上只有root用户才可以访问1024以下的端口号,其余用户不能访问。
问题2:服务器上已经存在一个Tomcat,并且该Tomcat占用了8005端口。
 
解决方案:
问题1:修改Tomcat的server.xml配置文件,将端口修改为8888(或者其他1024以上的端口号,不能与本机上的其它Tomcat端口冲突),然后使用root用户登录服务器,执行端口重定向命令:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8081。意思就是当访问80端口时重定向到8081端口,这样,我们可以改成任何我们需要的端口啦。
 
问题2:想必大家都很容易解决这样的问题吧,确实,只需要修改server.xml中的8005端口即可,最好将其他端口也同时修改一下,防止出现冲突。

你可能感兴趣的:(Tomcat启动时报错:java.net.BindException: Permission denied :80)