我试图让 VPS 上安装的 Tomcat 在端口 80 而不是 8080 上运行,但是当我编辑 Tomcat 目录中的 server.xml 文件的设置并尝试重新启动 Tomcat 时,我收到此消息错误:
2012 年 1 月 23 日上午 9:55:46 org.apache.coyote.http11.Http11Protocol 初始化
严重:初始化端点 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 年 9:55:46 AM 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 上运行?
编辑:这是我输入 free -m 时的输出:
total used free shared buffers cached
Mem: 1024 748 275 0 0 0
-/+ buffers/cache: 748 275
Swap: 0 0 0
我在 OpenVZ 上使用 authbind 在端口 80 上运行 Tomcat 时遇到了同样的问题。我通过从 OpenJDK 切换到 Sun Java 解决了这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)