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

问题起因:做负载均衡时需要将Web工程与Wap工程同时部署在一台Suse服务器上,为方便日后维护,我们分别为Web工程与Wap工程分配了不同的用户进行部署,并且端口使用分别为8080与80,Web工程使用默认8080端口,Tomcat正常启动并能正常访问,Wap工程使用80端口(修改server.xml),Tomcat启动一系列错误(见问题描述)。

问题描述:Tomcat启动时报一系列错误:
问题1:SEVERE: Error starting endpointjava.net.BindException: Permission denied<null>:80 
atorg.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:549)atorg.apache.tomcat.util.net.JIoEndpoint.start(JIoEndpoint.java:565)atorg.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java:203)atorg.apache.catalina.connector.Connector.start(Connector.java:1087)atorg.apache.catalina.core.StandardService.start(StandardService.java:534)atorg.apache.catalina.core.StandardServer.start(StandardServer.java:710)at org.apache.catalina.startup.Catalina.start(Catalina.java:581) atsun.reflect.NativeMethodAccessorImpl .invoke0(Native Method) atsun.reflect.NativeMethodAccessorImpl .invoke(NativeMethodAccessorImpl .java:39)atsun.reflect.DelegatingMethodAccessor Impl.invoke(DelegatingMethodAccessor Impl.java:25)at java.lang.reflect.Method.invoke(Method.java:597) atorg.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) atorg.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
问题2:SEVERE: StandardServer.await:create[8005]: 
java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
atjava.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
at java.net.ServerSocket.bind(ServerSocket.java:328)
atjava.net.ServerSocket.<init>(ServerSocket.java:194)
atorg.apache.catalina.core.StandardServer.await(StandardServer.java:373)
atorg.apache.catalina.startup.Catalina.await(Catalina.java:662)
atorg.apache.catalina.startup.Catalina.start(Catalina.java:614)
at sun.reflect.NativeMethodAccessorImpl .invoke0(NativeMethod)
atsun.reflect.NativeMethodAccessorImpl .invoke(NativeMethodAccessorImpl .java:39)
atsun.reflect.DelegatingMethodAccessor Impl.invoke(DelegatingMethodAccessor Impl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
atorg.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
atorg.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

原因分析:
问题1:在Suse上只有root用户才可以访问1024以下的端口号,其余用户不能访问。
问题2:服务器上已经存在一个Tomcat,并且该Tomcat占用了8005端口。

解决方案:
问题1:修改Tomcat的server.xml配置文件,将端口修改为8081(或者其他1024以上的端口号,不能与本机上的其它Tomcat端口冲突),然后使用root用户登录服务器,执行端口重定向命令:iptables-t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port8081。意思就是当访问80端口时重定向到8081端口,这样,我们可以改成任何我们需要的端口啦。
问题2:想必大家都很容易解决这样的问题吧,确实,只需要修改server.xml中的8005端口即可,最好将其他端口也同时修改一下,防止出现冲突。


转自http://blog.sina.com.cn/s/blog_6eea02c50100x8aj.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值