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. 《当大数据遇见网络:大数据与SDN》

    总体结构: <当大数据遇见网络:大数据与SDN> 摘要 大数据和SDN无论是对于学术界还是工业界来说都极具吸引力.传统上人们都是分别在最前沿工作中研究这两个重要的领域.然而一方面,SDN的 ...

  2. 第十周PSP&进度条

    PSP 一.表格: D日期     C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 11月17号 站立会议 分配任务 13:00 13:30 0 3 ...

  3. ejabberd在windows10上安装记录

    安装完ejabberd:ejabberd-17.11-windows-installer.exe 启动报错:bash ejabberdctl register "admin" &q ...

  4. mysql 清空数据

    清空数据有2 个命令 -- 清空全部数据,不写日志,不可恢复,速度极快 truncate table 表名; -- 清空全部数据,写日志,数据可恢复,速度慢 delete from 表名 业务需求:清 ...

  5. [转帖]第二个显示屏上禁用Windows任务栏

    http://os.51cto.com/art/201812/589207.htm 这个过程非常简单,你可以在一分钟内摆脱第二个屏幕上的任务栏. 您需要做的就是按照以下步骤操作: --打开设置,然后转 ...

  6. 【设计模式】—— 代理模式Proxy

    前言:[模式总览]——————————by xingoo 模式意图 代理模式为其他的对象增加一个代理对象,进行访问控制.从而避免直接访问一个对象,造成效率或者安全性上的降低. 应用场景 1 远程代理, ...

  7. linux命令行打包、压缩及解压缩

    使用命令: tar 打包: tar -zcvf  目标文件 源文件或文件夹 目标文件为要打包成的文件的文件名, 打包后文件的 格式取决于目标文件的后缀名 单文件或文件夹打包 tar -zcvf ind ...

  8. 解题:HEOI 2012 朋友圈

    题面 因为$A$中只有奇偶性不同的人才能做朋友,所以A中只可能出0/1/2个人,分类讨论 然后$B$中求最大团,转成补图后正好是个二分图(不然就不用做了),求最大点独立集=总点数-最大匹配 我洛谷上交 ...

  9. codeblocks编译器

    发现网络有些编译器没有MinGW,特此留一文件: https://pan.baidu.com/s/1pLltzvH 有时下载codeblocks后编译不了,还要修改MinGW的位置,找到MinGW文件 ...

  10. 内联汇编_把a值赋给b的汇编代码

    int main(int argc, char *argv[]) { int a = 10, b; __asm__("movl %1, %%eax\n\t" "movl ...