Tomcat
Tomcat7 掛起部署應用程序
我在 Ubuntu 14.04 上的 Tomcat 7 中有一些非常奇怪的行為。
我創建了一個新的 VPS,安裝了 default-jdk 和其他簡單的東西。下載並解壓 Tomcat 7。檢查它是否在 上執行
[myIP]:8080
,並查看 Tomcat 的索引頁面。重新啟動 VPS 後,我再次啟動了 Tomcat,並且… 沒有任何響應
[myIP]:8080
。甚至沒有錯誤。當我檢查日誌時,我看到 Tomcat 只是在第一個 webapp 上處於部署狀態。我的日誌:
Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Server version: Apache Tomcat/7.0.57 Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Server built: Nov 3 2014 08:39:16 UTC Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Server number: 7.0.57.0 Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log INFO: OS Name: Linux Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log INFO: OS Version: 3.13.0-37-generic Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Architecture: amd64 Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log INFO: JAVA_HOME: /usr/lib/jvm/java-7-openjdk-amd64/jre Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log INFO: JVM Version: 1.7.0_65-b32 Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log INFO: JVM Vendor: Oracle Corporation Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log INFO: CATALINA_BASE: /opt/tomcat Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log INFO: CATALINA_HOME: /opt/tomcat Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Djava.endorsed.dirs=/opt/tomcat/endorsed Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Dcatalina.base=/opt/tomcat Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Dcatalina.home=/opt/tomcat Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Djava.io.tmpdir=/opt/tomcat/temp Dec 31, 2014 9:06:04 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib Dec 31, 2014 9:06:04 AM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-bio-8080"] Dec 31, 2014 9:06:04 AM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["ajp-bio-8009"] Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 2327 ms Dec 31, 2014 9:06:04 AM org.apache.catalina.core.StandardService startInternal INFO: Starting service Catalina Dec 31, 2014 9:06:04 AM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.57 Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /opt/tomcat/webapps/host-manager Dec 31, 2014 9:11:09 AM org.apache.catalina.util.SessionIdGenerator createSecureRandom INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [303,104] milliseconds. Dec 31, 2014 9:11:09 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deployment of web application directory /opt/tomcat/webapps/host-manager has finished in 304,682 ms Dec 31, 2014 9:11:09 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /opt/tomcat/webapps/manager Dec 31, 2014 9:11:09 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deployment of web application directory /opt/tomcat/webapps/manager has finished in 271 ms Dec 31, 2014 9:11:09 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /opt/tomcat/webapps/docs Dec 31, 2014 9:11:09 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deployment of web application directory /opt/tomcat/webapps/docs has finished in 205 ms Dec 31, 2014 9:11:09 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /opt/tomcat/webapps/examples Dec 31, 2014 9:11:11 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deployment of web application directory /opt/tomcat/webapps/examples has finished in 1,422 ms Dec 31, 2014 9:11:11 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /opt/tomcat/webapps/ROOT Dec 31, 2014 9:11:11 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deployment of web application directory /opt/tomcat/webapps/ROOT has finished in 177 ms Dec 31, 2014 9:11:11 AM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8080"] Dec 31, 2014 9:11:11 AM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["ajp-bio-8009"] Dec 31, 2014 9:11:11 AM org.apache.catalina.startup.Catalina start INFO: Server startup in 306957 ms Dec 31, 2014 9:17:35 AM org.apache.coyote.AbstractProtocol pause INFO: Pausing ProtocolHandler ["http-bio-8080"] Dec 31, 2014 9:17:35 AM org.apache.coyote.AbstractProtocol pause INFO: Pausing ProtocolHandler ["ajp-bio-8009"] Dec 31, 2014 9:17:35 AM org.apache.catalina.core.StandardService stopInternal INFO: Stopping service Catalina Dec 31, 2014 9:17:36 AM org.apache.coyote.AbstractProtocol stop INFO: Stopping ProtocolHandler ["http-bio-8080"] Dec 31, 2014 9:17:36 AM org.apache.coyote.AbstractProtocol stop INFO: Stopping ProtocolHandler ["ajp-bio-8009"] Dec 31, 2014 9:17:36 AM org.apache.coyote.AbstractProtocol destroy INFO: Destroying ProtocolHandler ["http-bio-8080"] Dec 31, 2014 9:17:36 AM org.apache.coyote.AbstractProtocol destroy INFO: Destroying ProtocolHandler ["ajp-bio-8009"] Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Server version: Apache Tomcat/7.0.57 Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Server built: Nov 3 2014 08:39:16 UTC Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Server number: 7.0.57.0 Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.VersionLoggerListener log INFO: OS Name: Linux Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.VersionLoggerListener log INFO: OS Version: 3.13.0-37-generic Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Architecture: amd64 Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.VersionLoggerListener log INFO: JAVA_HOME: /usr/lib/jvm/java-7-openjdk-amd64/jre Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.VersionLoggerListener log INFO: JVM Version: 1.7.0_65-b32 Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.VersionLoggerListener log INFO: JVM Vendor: Oracle Corporation Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.VersionLoggerListener log INFO: CATALINA_BASE: /opt/tomcat Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.VersionLoggerListener log INFO: CATALINA_HOME: /opt/tomcat Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Djava.endorsed.dirs=/opt/tomcat/endorsed Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Dcatalina.base=/opt/tomcat Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Dcatalina.home=/opt/tomcat Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Djava.io.tmpdir=/opt/tomcat/temp Dec 31, 2014 9:20:01 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib Dec 31, 2014 9:20:01 AM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-bio-8080"] Dec 31, 2014 9:20:01 AM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["ajp-bio-8009"] Dec 31, 2014 9:20:01 AM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 1536 ms Dec 31, 2014 9:20:02 AM org.apache.catalina.core.StandardService startInternal INFO: Starting service Catalina Dec 31, 2014 9:20:02 AM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.57 Dec 31, 2014 9:20:02 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /opt/tomcat/webapps/host-manager Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Server version: Apache Tomcat/7.0.57 Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Server built: Nov 3 2014 08:39:16 UTC Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Server number: 7.0.57.0 Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.VersionLoggerListener log INFO: OS Name: Linux Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.VersionLoggerListener log INFO: OS Version: 3.13.0-37-generic Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Architecture: amd64 Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.VersionLoggerListener log INFO: JAVA_HOME: /usr/lib/jvm/java-7-openjdk-amd64/jre Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.VersionLoggerListener log INFO: JVM Version: 1.7.0_65-b32 Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.VersionLoggerListener log INFO: JVM Vendor: Oracle Corporation Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.VersionLoggerListener log INFO: CATALINA_BASE: /opt/tomcat Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.VersionLoggerListener log INFO: CATALINA_HOME: /opt/tomcat Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Djava.endorsed.dirs=/opt/tomcat/endorsed Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Dcatalina.base=/opt/tomcat Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Dcatalina.home=/opt/tomcat Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Djava.io.tmpdir=/opt/tomcat/temp Dec 31, 2014 9:33:38 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib Dec 31, 2014 9:33:38 AM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-bio-8080"] Dec 31, 2014 9:33:38 AM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["ajp-bio-8009"] Dec 31, 2014 9:33:38 AM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 2495 ms Dec 31, 2014 9:33:39 AM org.apache.catalina.core.StandardService startInternal INFO: Starting service Catalina Dec 31, 2014 9:33:39 AM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.57 Dec 31, 2014 9:33:39 AM org.apache.catalina.startup.HostConfig deployDirectory INFO: Deploying web application directory /opt/tomcat/webapps/host-manager
直到第 74 行,這是一個正常的伺服器啟動。部署了所有標準 webapp(第 48-68 行),但之後它就掛起。所以,我停止了伺服器並重新啟動了我的系統。再次啟動tomcat,奇蹟開始了。下一個會話在第 89-136 行,您可以看到沒有
Server startup in xxxx ms
.它只是掛在部署中,這種情況一直在重複。這可能是什麼原因造成的?我花了好幾個小時來解決這個問題,我快瘋了,無處可去。
一個可能的問題是 Tomcat 等待熵增加。用幾個執行緒轉儲
jstack
看看誰在等待什麼。Tomcat 7+ 嚴重依賴
SecureRandom
類來為其會話 ID 和其他內容提供隨機值。根據您的 JRE,如果用於初始化的熵源SecureRandom
缺少熵,則可能會導致啟動期間出現延遲。如果問題是熵,可以通過設置以下系統屬性將 JRE 配置為使用非阻塞熵源:
-Djava.security.egd=file:/dev/./urandom