tomcat啟動報錯 java net BindException Permission denied null
阿新 • • 發佈:2018-12-20
1,啟動報錯顯示
[org.springframework.web.servlet.DispatcherServlet]FrameworkServlet 'springMvc': initialization completed in 382 msJun 01, 2015 6:39:06 PM org.apache.coyote.http11.Http11Protocol startSEVERE: Error starting endpointjava.net.BindException: Permission denied <null>:80 at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:549 ) at org.apache.tomcat.util.net.JIoEndpoint.start(JIoEndpoint.java:565) at org.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java:207) at org.apache.catalina.connector.Connector.start(Connector.java:1196) at org.apache.catalina.core.StandardService.start(StandardService.java:540 ) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)Caused by: java.net.BindException: Permission denied at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376) at java.net.ServerSocket.bind(ServerSocket.java:376) at java.net.ServerSocket.<init>(ServerSocket.java:237) at java.net.ServerSocket.<init>(ServerSocket.java:181) at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50) at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538) ... 12 moreJun 01, 2015 6:39:06 PM org.apache.catalina.core.StandardService startSEVERE: Failed to start connector [Connector[HTTP/1.1-80]]LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: java.net.BindException: Permission denied <null>:80 at org.apache.catalina.connector.Connector.start(Connector.java:1203) at org.apache.catalina.core.StandardService.start(StandardService.java:540) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)Jun 01, 2015 6:39:06 PM org.apache.jk.common.ChannelSocket initINFO: JK: ajp13 listening on /0.0.0.0:9109Jun 01, 2015 6:39:06 PM org.apache.jk.server.JkMain startINFO: Jk running ID=0 time=0/17 config=nullJun 01, 2015 6:39:06 PM org.apache.catalina.startup.Catalina startINFO: Server startup in 6868 ms
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
問題分析:在Suse上只有root使用者才可以訪問1024以下的埠號,其餘使用者不能訪問。
2,解決方案
2.1,修改Tomcat的server.xml配置檔案,將埠修改為8081(或者其他1024以上的埠號,不能與本機上的其它Tomcat埠衝突)
[[email protected]]# vim /usr/local/app/apache-tomcat-6.0.37_hechuang_lib/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-->
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
2.2,然後使用root使用者登入伺服器,執行埠重定向命令:iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 8081。
意思就是當訪問80埠時重定向到8081埠,這樣,我們可以改成任何我們需要的埠啦。
[root@tomcat57conf]# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8081[root@tomcat57conf]#
- 1
- 2
2.3,切換到tomcat賬號,啟動tomcat服務
就可以正常訪問了:
INFO: Deploying web application directory databox[org.springframework.web.context.ContextLoader]Root WebApplicationContext: initialization started[org.springframework.web.context.support.XmlWebApplicationContext]Refreshing Root WebApplicationContext: startup date [Mon Jun 01 18:42:44 CST 2015]; root of context hierarchy[org.springframework.beans.factory.xml.XmlBeanDefinitionReader]Loading XML bean definitions from class path resource [spring.xml][org.springframework.beans.factory.xml.XmlBeanDefinitionReader]Loading XML bean definitions from class path resource [spring-mybatis.xml][org.springframework.beans.factory.config.PropertyPlaceholderConfigurer]Loading properties file from class path resource [config.properties][org.springframework.beans.factory.support.DefaultListableBeanFactory]Pre-instantiating singletons in org.s[email protected]71d7c3ff: defining beans [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,receiptService,posmonitorService,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,dataSource,sqlSessionFactory,org.mybatis.spring.mapper.MapperScannerConfigurer#0,transactionManager,transactionAdvice,org.springframework.aop.config.internalAutoProxyCreator,transactionPointcut,org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor,receiptMapper,posMonitorLogsMapper]; root of factory hierarchy[com.alibaba.druid.pool.DruidAbstractDataSource]maxIdle is deprecated[com.alibaba.druid.pool.DruidDataSource]{dataSource-1} inited[org.springframework.web.context.ContextLoader]Root WebApplicationContext: initialization completed in 1433 ms[org.springframework.web.servlet.DispatcherServlet]FrameworkServlet 'springMvc': initialization started[org.springframework.web.context.support.XmlWebApplicationContext]Refreshing WebApplicationContext for namespace 'springMvc-servlet': startup date [Mon Jun 01 18:42:45 CST 2015]; parent: Root WebApplicationContext[org.springframework.beans.factory.xml.XmlBeanDefinitionReader]Loading XML bean definitions from class path resource [spring-mvc.xml][org.springframework.beans.factory.support.DefaultListableBeanFactory]Pre-instantiating singletons in org.s[email protected]5d4ee178: defining beans [receiptController,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,mappingJacksonHttpMessageConverter,org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter#0,org.springframework.web.servlet.view.InternalResourceViewResolver#0,multipartResolver,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; parent: org.s[email protected]71d7c3ff[org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping]Mapped URL path [/receiptController/receiveReceiptData] onto handler 'receiptController'[org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping]Mapped URL path [/receiptController/receiveReceiptData.*] onto handler 'receiptController'[org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping]Mapped URL path [/receiptController/receiveReceiptData/] onto handler 'receiptController'[org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping]Mapped URL path [/receiptController/receivePosInfoData] onto handler 'receiptController'[org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping]Mapped URL path [/receiptController/receivePosInfoData.*] onto handler 'receiptController'[org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping]Mapped URL path [/receiptController/receivePosInfoData/] onto handler 'receiptController'[org.springframework.web.servlet.DispatcherServlet]FrameworkServlet 'springMvc': initialization completed in 377 msJun 01, 2015 6:42:45 PM org.apache.coyote.http11.Http11Protocol startINFO: Starting Coyote HTTP/1.1 on http-8081Jun 01, 2015 6:42:45 PM org.apache.jk.common.ChannelSocket initINFO: JK: ajp13 listening on /0.0.0.0:9109Jun 01, 2015 6:42:45 PM org.apache.jk.server.JkMain startINFO: Jk running ID=0 time=0/16 config=nullJun 01, 2015 6:42:45 PM org.apache.catalina.startup.Catalina startINFO: Server startup in 6827 ms^C
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
2016-04-16 補充: 執行service iptables save;將修改的iptables資訊儲存起來,restart會生效,並且加入chkconfig重啟生效:
service iptables save; chkconfig --level 2345 iptables on; chkconfig --add iptables;
- 1
- 2
- 3