我在新 VPS 上启动 tomcat 7 时遇到了麻烦。我真的很困惑,因为我经常这样做。所以我觉得可能是 VPS 的问题。
我刚从 CINFU 获得了一个新的 VPS。在全新安装 Ubuntu 12.04 32 位后,我安装了 openjdk-6-jdk,更新了 JAVA_HOME 以指向:
/usr/lib/jvm/java-1.6.0-openjdk-i386
并将 JRE_HOME 更改为:
/usr/lib/jvm/java-1.6.0-openjdk-i386/jre
但是当我尝试运行时:
./catalina.sh run
它只是输出:
Using CATALINA_BASE: /opt/tomcat/apache-tomcat-7.0.29
Using CATALINA_HOME: /opt/tomcat/apache-tomcat-7.0.29
Using CATALINA_TMPDIR: /opt/tomcat/apache-tomcat-7.0.29/temp
Using JRE_HOME: /usr/lib/jvm/java-1.6.0-openjdk-i386
Using CLASSPATH: /opt/tomcat/apache-tomcat-7.0.29/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-7.0.29/bin/tomcat-juli.jar
然后停止。它只是挂在那里什么也不做。如果我运行
./startup.sh && tail -f ../logs/catalina.out
它达到:
Aug 24, 2012 8:38:36 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Aug 24, 2012 8:38:36 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Aug 24, 2012 8:38:36 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 495 ms
Aug 24, 2012 8:38:36 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Aug 24, 2012 8:38:36 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.29
但我无法访问任何内容。请求只是挂起。
我还尝试了其他一些方法,例如在 catalina.sh 中明确导出路径等,然后运行
./startup.sh
而不是 catalina.sh,但我得到的最佳结果是它完成了部署所有 WAR(tomcat 自带的默认 WAR,如主机管理器等),但随后它挂起了:
Aug 24, 2012 8:47:30 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
并且什么也不做。
有人能提供一些有用的建议吗?正如我所说,我肯定是忽略了某些愚蠢的东西,因为这在我们拥有的所有其他 VPS 上都有效。
更新
我发现问题实际上在于他们使用 OpnVZ 虚拟化并且存在已知的与 Java 的兼容性问题。
答案1
我发现问题实际上在于他们使用 OpenVZ 虚拟化并且存在已知的与 Java 的兼容性问题。