tomcat报错:java.net.SocketException: Permission denied["http-nio-80"]





问题:使用非root账户tomcat启动tomcat报错:





19-Sep-2016 15:08:27.168 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-80"]

19-Sep-2016 15:08:27.179 SEVERE [main] org.apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["http-nio-80"]

 java.net.SocketException: Permission denied

        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:339)

        at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:737)

        at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:457)

        at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:120)

        at org.apache.catalina.connector.Connector.initInternal(Connector.java:960)

        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)

        at org.apache.catalina.core.StandardService.initInternal(StandardService.java:567)

        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)

        at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:851)

        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)

        at org.apache.catalina.startup.Catalina.load(Catalina.java:576)

        at org.apache.catalina.startup.Catalina.load(Catalina.java:599)

        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:310)

        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)





19-Sep-2016 15:08:27.180 SEVERE [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-80]]





 org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-80]]

        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)

        at org.apache.catalina.core.StandardService.initInternal(StandardService.java:567)

        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)

        at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:851)

        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)

        at org.apache.catalina.startup.Catalina.load(Catalina.java:576)

        at org.apache.catalina.startup.Catalina.load(Catalina.java:599)

        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:310)

        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)

Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed

        at org.apache.catalina.connector.Connector.initInternal(Connector.java:962)

        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)

        ... 12 more

Caused by: java.net.SocketException: Permission denied

        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:339)

        at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:737)

        at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:457)

        at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:120)

        at org.apache.catalina.connector.Connector.initInternal(Connector.java:960)

        ... 13 more





问题分析:在centos上只有root用户才可以使用1024以下的端口号,其余用户不能





2.解决方案





方法①修改Tomcat的server.xml配置文件,将端口修改为8081(或者其他1024以上的端口号,不能与本机上的其它Tomcat端口冲突)





vim /usr/local/apache-tomcat-8.0.52/conf/server.xml

    <Connector port="8081" protocol="HTTP/1.1" 

               connectionTimeout="30000" 

               maxThreads="2000"

               acceptCount="2000"

               URIEncoding="UTF-8"

               redirectPort="9143" />

    <!-- A "Connector" using the shared thread pool-->





方法②修改端口后,使用root用户登录服务器,执行端口重定向命令:iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 8081





意思就是当访问80端口时重定向到8081端口,这样,我们可以改成任何我们需要的端口啦。





iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8081





切换到tomcat账号,启动tomcat服务

tomcat报错:java.net.SocketException: Permission denied["http-nio-80"]的更多相关文章

  1. CentOS7启动Tomcat报错:./startup.sh: Permission denied

    错误信息:./startup.sh: Permission denied 执行./startup.sh,或者./shutdown.sh的时候, 报:Permission denied,因为是执行tom ...

  2. 解决:IDEA unable to import maven project see logs for details问题+java http请求报java.net.SocketException: Permission denied:connect 问题

    背景:用IDEA写了一个java发送http请求的maven项目. 运行时,项目报java.net.SocketException: Permission denied:connect问题: 修改po ...

  3. Protocol handler start failedCaused by: java.net.SocketException: Permission denied

    最近在使用mac启动项目的时候,发现原本在Windows下正常跑的项目报错如下: Protocol handler start failedCaused by: java.net.SocketExce ...

  4. Ubuntu composer 安装thinkphp5 失败,报错:[ErrorException] mkdir(): Permission denied

    在Linux环境下,使用composer安装thinkphp5,安装时,报错:[ErrorException]               mkdir(): Permission denied : 看 ...

  5. Spring boot Unable to start embedded Tomcat报错 java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()

    Spring boot Unable to start embedded Tomcat 报错 java.lang.NoSuchMethodError: javax.servlet.ServletCon ...

  6. android程序在调试时出现了套接字异常“java.net.SocketException: Permission denied”该如何解决

    Socket不能对外连接,错误不会被报出,调试的时候,能看到Exception, 一般是抛出 java.net.socketexception permission denied这个异常.只要你的程序 ...

  7. maven 项目启动tomcat报错 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

    maven项目启动tomcat报错: java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderLi ...

  8. 项目启动报错java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind

    项目已启动的情况下,MyEclipse异常退出.再次打开后重启项目,项目报错:java.net.SocketException: Unrecognized Windows Sockets error: ...

  9. myeclipse中运行tomcat报错java.lang.NoClassDefFoundError

    有关myeclipse的小问题,在myeclipse中运行tomcat时显示已启动,但是无法访问localhost:8080/,显示404错误.在控制台中发现报错代码如下: java.lang.NoC ...

随机推荐

  1. Oracle DROPtable以及Truncate table 的简单测试

    1. 一个用户库 有一个业务表比较大 大小是 49g 表的行数为:121546147 一亿两千万行 制作一个虚拟机的快照测试一下 drop table 和 truncate table的性能差距 2. ...

  2. Docker run centos 内部使用systemctl 启动服务的方法

    1. 执行docker 镜像 使用命令为 docker run --privileged=true -ti -e "container=docker" centos /usr/sb ...

  3. 使用ajax异步上传文件或图片(配合php)

    //html代码 <form enctype="multipart/form-data" id="upForm"> <input type=& ...

  4. GDKOI2018发烧记

    偏远小渔村NOIP螺旋升天选手又一次来到了广州参加GDKOI...金实的初三爷们也来啦?要被碾啦T T Day 0 跟HR Lao爷拼(biao)车到了高铁站,上了高铁居然没有颓颓颓吃吃吃(雾),安心 ...

  5. HDU 6170 dp

    Two strings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

  6. 个推基于 Apache Pulsar 的优先级队列方案

    作者:个推平台研发工程师 祥子 一.业务背景在个推的推送场景中,消息队列在整个系统中占有非常重要的位置.当 APP 有推送需求的时候, 会向个推发送一条推送命令,接到推送需求后,我们会把APP要求推送 ...

  7. Zabbix应用六:Zabbix监控Redis

    利用Zabbix监控Redis Zabbix监控redis就比较简单了,因为zabbix官方提供了监控redis的模版和脚本,而且脚本有nodejs和python两种,下载地址:https://git ...

  8. Scrapy爬虫框架教程(四)-- 抓取AJAX异步加载网页

    欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction ...

  9. Java基础-Java中的并法库之线程池技术

    Java基础-Java中的并法库之线程池技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是线程池技术 二.

  10. Java访问权限控制

    访问权限控制           java提供了访问权限修饰词,以供类库开发人员向客户端程序员指明哪些是可用的,哪些是不可用的.访问权限控制的等级,从最大权限到最小权限依次是:public.prote ...