Linux下启动tomcat:无法在linux上用spring启动 tomcat

关于Linux下启动tomcat的问题,在java.net.socketexception permission denied spring boot中经常遇到, 突然我无法启动我的嵌入式 tomcat。

突然我无法启动我的嵌入式 tomcat。

我得到:

[main] ERROR o.a.coyote.http11.Http11NioProtocol - Failed to start end point associated with ProtocolHandler ["http-nio-86"]
java.net.SocketException: Permission denied

我尝试更改 tomcat 端口,我尝试设置权限:chmod 777 src /-R

我使用 Linux Mint 17

我不知道该怎么办...

这是堆栈跟踪:

    [main] ERROR o.a.coyote.http11.Http11NioProtocol - Failed to start end point associated with ProtocolHandler ["http-nio-86"]
java.net.SocketException: Permission denied
    at sun.nio.ch.Net.bind0(Native Method) ~[na:1.7.0_67]
    at sun.nio.ch.Net.bind(Net.java:444) ~[na:1.7.0_67]
    at sun.nio.ch.Net.bind(Net.java:436) ~[na:1.7.0_67]
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214) ~[na:1.7.0_67]
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) ~[na:1.7.0_67]
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:473) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:647) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:449) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1007) [tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:459) [tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731) [tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.catalina.startup.Tomcat.start(Tomcat.java:341) [tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:79) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:69) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:270) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:145) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:159) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:132) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476) [spring-context-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:648) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:311) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:909) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:898) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at com.company.WebApplication.main(WebApplication.java:23) [cl/:na]
- 2014-10-30 10:30:51,609 [main] ERROR o.a.catalina.core.StandardService - Failed to start connector [Connector[org.apache.coyote.http11.Http11NioProtocol-86]]
org.apache.catalina.LifecycleException: Failed to start component [Connector[org.apache.coyote.http11.Http11NioProtocol-86]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) [tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:459) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731) [tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.catalina.startup.Tomcat.start(Tomcat.java:341) [tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:79) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:69) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:270) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:145) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:159) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:132) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476) [spring-context-4.0.3.RELEASE.jar:4.0.3.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:648) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:311) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:909) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:898) [spring-boot-1.0.2.RELEASE.jar:1.0.2.RELEASE]
    at com.company.WebApplication.main(WebApplication.java:23) [cl/:na]
Caused by: org.apache.catalina.LifecycleException: service.getName(): "Tomcat";  Protocol handler start failed
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1014) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-7.0.52.jar:7.0.52]
    ... 18 common frames omitted
Caused by: java.net.SocketException: Permission denied
    at sun.nio.ch.Net.bind0(Native Method) ~[na:1.7.0_67]
    at sun.nio.ch.Net.bind(Net.java:444) ~[na:1.7.0_67]
    at sun.nio.ch.Net.bind(Net.java:436) ~[na:1.7.0_67]
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214) ~[na:1.7.0_67]
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) ~[na:1.7.0_67]
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:473) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:647) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:449) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1007) ~[tomcat-embed-core-7.0.52.jar:7.0.52]
    ... 19 common frames omitted
- 2014-10-30 10:30:51,609 [main] INFO  o.a.coyote.http11.Http11NioProtocol - Stopping ProtocolHandler ["http-nio-86"]
- 2014-10-30 10:30:51,609 [main] INFO  o.a.coyote.http11.Http11NioProtocol - Pausing ProtocolHandler ["http-nio-86"]
- 2014-10-30 10:30:51,609 [main] INFO  o.a.catalina.core.StandardService - Stopping service Tomcat
- 2014-10-30 10:30:51,612 [localhost-startStop-1] ERROR o.a.c.loader.WebappClassLoader - The web application [] appears to have started a thread named [Timer-0] but has failed to stop it. This is very likely to create a memory leak.
- 2014-10-30 10:30:51,612 [localhost-startStop-1] ERROR o.a.c.loader.WebappClassLoader - The web application [] appears to have started a thread named [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0] but has failed to stop it. This is very likely to create a memory leak.
- 2014-10-30 10:30:51,612 [localhost-startStop-1] ERROR o.a.c.loader.WebappClassLoader - The web application [] appears to have started a thread named [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1] but has failed to stop it. This is very likely to create a memory leak.
- 2014-10-30 10:30:51,613 [localhost-startStop-1] ERROR o.a.c.loader.WebappClassLoader - The web application [] appears to have started a thread named [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2] but has failed to stop it. This is very likely to create a memory leak.
- 2014-10-30 10:30:51,613 [localhost-startStop-1] ERROR o.a.c.loader.WebappClassLoader - The web application [] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak.
Exception in thread "main" org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:135)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:476)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:120)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:648)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:311)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:909)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:898)
    at com.company.WebApplication.main(WebApplication.java:23)
Caused by: org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Tomcat
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:106)
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:69)
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:270)
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:145)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:159)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:132)
    ... 7 more
Caused by: java.lang.IllegalStateException: Tomcat connector in failed state
    at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:102)
    ... 12 more

请帮帮我。

29

Linux 不允许普通用户绑定到 & lt;= 1024 的 TCP 端口。这里讨论了here的原因。您尝试绑定到 86,因此失败,出现“Permission denied”。最快和最安全的解决方案是使用 & gt;1024 的值配置端口。

当您使用 Boot 的嵌入式 Tomcat 实例时,会使用server.port属性在application.properties中配置端口。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(855)
软件技术特点:我应该使用什么技术来创建分布式会计软件
上一篇
编程如何从入门到精通:我应该学习 /精通Javascript吗
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(44条)