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数据库 通过触发器 限制登录ip

    转帖 From https://yq.aliyun.com/ziliao/123360 create or replace trigger logon_ip_control after logon o ...

  2. docker cp 和docker exec 查看docker 运行的容器信息

    1. 使用docker 运行 redis 和 postgresql docker run -d -p : -v /redis/data/:/data redis docker run -d -p : ...

  3. angular 可信的html 指令

    angular.module('app').filter('trustHtml', ($sce) => { return (html) => { if(typeof(html)==&quo ...

  4. 通过动态包含和Ajax机制抽取Web应用的公共页面

    在Java Web应用开发中,经常遇到的一种情况是,许多的页面中都包含着“公共页面”,这部分动态页面的特征是:访问量大,会带来较大的性能压力.功能设计上会动态地改变自身的元素.比如在登录前和登录后所展 ...

  5. IntelliJ IDEA之如何提交代码到SVN服务器

    一.准备 参照<IntelliJ IDEA教程之如何配置SVN>这篇文章配置SVN插件.提交代码到SVN之前,记得要先创建版本库,请参照<<SVN如何建立版本库>> ...

  6. Java NIO 详解(二)

    异步IO 异步 I/O 是一种没有阻塞地读写数据的方法.通常,在代码进行 read() 调用时,代码会阻塞直至有可供读取的数据.同样, write()调用将会阻塞直至数据能够写入,关于同步的IO请参考 ...

  7. Python学习--------------Atm+购物车系统

    一.程序需求 模拟实现一个ATM + 购物商城程序: 1.额度 15000或自定义 2.实现购物商城,买东西加入 购物车,调用信用卡接口结账 3.可以提现,手续费5% 4.每月22号出账单,每月10号 ...

  8. 洛谷P2542 [AHOI2005]航线规划(LCT,双连通分量,并查集)

    洛谷题目传送门 太弱了不会树剖,觉得LCT好写一些,就上LCT乱搞,当LCT维护双连通分量的练手题好了 正序删边是不好来维护连通性的,于是就像水管局长那样离线处理,逆序完成操作 显然,每个点可以代表一 ...

  9. Flume自定义Source、Sink和Interceptor(简单功能实现)

    1.Event event是flume传输的最小对象,从source获取数据后会先封装成event,然后将event发送到channel,sink从channel拿event消费. event由头he ...

  10. Mybatis.xml文件中大于小于等于

    第一种写法: 原符号 < <= > >= & ' "替换符号 < <= > >= & &apos; "例如: ...