试图改变的Apache Tomcat端口从8080到80时内存错误 [英] Memory error when trying to change Apache Tomcat port from 8080 to 80
问题描述
我试图让我安装Tomcat上VPS到端口80上,而不是8080上运行,但是当我编辑我的Tomcat目录下的server.xml文件中的设置,并尝试重新启动Tomcat,我m到处这个错误:
2012年1月23日上午09时55分46秒org.apache.coyote.http11.Http11Protocol的init
严重:错误初始化端点产生java.net.SocketException:不能
分配内存
在java.net.PlainSocketImpl.socketBind(本机方法)
在java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:353)
在java.net.ServerSocket.bind(ServerSocket.java:336)
在java.net.ServerSocket中。(ServerSocket.java:202)
在java.net.ServerSocket中。(ServerSocket.java:158)
在org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50)
在org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538)
在org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:176)
在org.apache.catalina.connector.Connector.initialize(Connector.java:1014)
在org.apache.catalina.core.StandardService.initialize(StandardService.java:680)
在org.apache.catalina.core.StandardServer.initialize(StandardServer.java:795)
在org.apache.catalina.startup.Catalina.load(Catalina.java:524)
在org.apache.catalina.startup.Catalina.load(Catalina.java:548)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在java.lang.reflect.Method.invoke(Method.java:616)
在org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
在org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)1月23日,
2012上午09点55分46秒org.apache.catalina.startup.Catalina负荷重度:
Catalina.start LifecycleException:协议处理程序初始化
失败:java.net.SocketException异常:无法分配内存
在org.apache.catalina.connector.Connector.initialize(Connector.java:1016)
在org.apache.catalina.core.StandardService.initialize(StandardService.java:680)
在org.apache.catalina.core.StandardServer.initialize(StandardServer.java:795)
在org.apache.catalina.startup.Catalina.load(Catalina.java:524)
在org.apache.catalina.startup.Catalina.load(Catalina.java:548)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在java.lang.reflect.Method.invoke(Method.java:616)
在org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
在org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
块引用>不能确定这意味着什么?这是否意味着我没有足够的内存?有没有其他的方法让Tomcat能够在80端口上运行?
编辑:这是输出,当我在自由-m类型:
共免费使用共享缓冲区高速缓存
纪念品:1024 748 275 0 0 0
- / +缓冲区/缓存:748 275
交换:0 0 0
解决方案我得到了同样的问题在Tomcat中使用authbind到80端口上。我解决它由OpenJDK的切换到的Sun Java运行OpenVZ的。
I'm trying to get my installation of Tomcat on a VPS to run on port 80 instead of 8080, but when I edit the settings for the server.xml file in my Tomcat directory, and try to restart Tomcat, I'm getting this error:
Jan 23, 2012 9:55:46 AM org.apache.coyote.http11.Http11Protocol init SEVERE: Error initializing endpoint java.net.SocketException: Cannot allocate memory at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:353) at java.net.ServerSocket.bind(ServerSocket.java:336) at java.net.ServerSocket.(ServerSocket.java:202) at java.net.ServerSocket.(ServerSocket.java:158) at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50) at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538) at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:176) at org.apache.catalina.connector.Connector.initialize(Connector.java:1014) at org.apache.catalina.core.StandardService.initialize(StandardService.java:680) at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:795) at org.apache.catalina.startup.Catalina.load(Catalina.java:524) at org.apache.catalina.startup.Catalina.load(Catalina.java:548) 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:616) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Jan 23, 2012 9:55:46 AM org.apache.catalina.startup.Catalina load SEVERE: Catalina.start LifecycleException: Protocol handler initialization failed: java.net.SocketException: Cannot allocate memory at org.apache.catalina.connector.Connector.initialize(Connector.java:1016) at org.apache.catalina.core.StandardService.initialize(StandardService.java:680) at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:795) at org.apache.catalina.startup.Catalina.load(Catalina.java:524) at org.apache.catalina.startup.Catalina.load(Catalina.java:548) 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:616) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Not really sure what that means... Does it mean I don't have enough memory? Are there alternative ways to get Tomcat to run on port 80?
Edit: Here is the output when I type in free -m:
total used free shared buffers cached Mem: 1024 748 275 0 0 0 -/+ buffers/cache: 748 275 Swap: 0 0 0
解决方案I got the same issue with Tomcat on OpenVZ using authbind to run on port 80. I solved it by switching from OpenJDK to Sun Java.
这篇关于试图改变的Apache Tomcat端口从8080到80时内存错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!