Tomcat7 зависает при развертывании приложений

10

У меня очень странное поведение в Tomcat 7 на Ubuntu 14.04.

Я создал новый VPS, установил default-jdk и другие простые вещи. Скачал и распаковал Tomcat 7. Проверил, что он работает [myIP]:8080, и увидел страницу индекса Tomcat.

После того, как я перезагрузил VPS, я снова запустил Tomcat, и ... ответа нет [myIP]:8080. Даже не ошибка. Когда я проверил журналы, я увидел, что Tomcat просто зависает в состоянии развертывания в первом веб-приложении.

Мои журналы :

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 это нормальный запуск сервера. Все стандартные веб-приложения были развернуты (строки 48-68), но после этого он просто зависает. Итак, я остановил сервер и перезагрузил систему. Снова завел кота, и чудо начинается. Следующий сеанс находится в строках 89-136, и вы можете видеть, что там нет записи для Server startup in xxxx ms.

Он просто зависает при развертывании, и эта ситуация повторяется постоянно. Что может быть причиной этого? Я часами боролся с этой проблемой, и я схожу с ума и ничего не получаю.

Asprelis
источник
Я нашел хорошее решение здесь. Нам нужно обновить генератор случайных чисел демона, который будет поддерживать энтропию в системе opur. stackoverflow.com/questions/27612209/…
Asprelis

Ответы:

22

Возможная проблема - Tomcat, ожидающий накопления энтропии. Возьмите несколько дампов ниток, jstackчтобы узнать, кто чего ждет.

Tomcat 7+ в значительной степени зависит от SecureRandomкласса для предоставления случайных значений для идентификаторов сеансов и других вещей. В зависимости от вашей JRE, это может вызвать задержки во время запуска, если источник энтропии, который используется для инициализации SecureRandom, лишен энтропии.

Если проблема заключается в энтропии, есть способ настроить JRE для использования неблокирующего источника энтропии, установив следующее системное свойство:

-Djava.security.egd=file:/dev/./urandom

Смотрите эту связанную дискуссию для более подробной информации .

Федерико Сьерра
источник
ИНФОРМАЦИЯ: Создание экземпляра SecureRandom для генерации идентификатора сеанса с использованием [SHA1PRNG] заняло [4,118,269] миллисекунд. Кажется, ты прав. Я постараюсь изменить источник энтропии
Asprelis
О боже, спасибо за подсказку !!! Я обеспокоен этой проблемой около 2 дней!
Ругал
Альтернативное решение - установить, havegedчто кормит / dev / random с энтропией, см. Digitalocean.com/community/tutorials/…
Джеймс
1
@ Джеймс да, конечно, но вы должны позаботиться о деталях security.stackexchange.com/questions/34523/…
Федерико Сьерра
0

Может быть полезно для кого-то:

Убедитесь, что в вашем файле pom.xml таких зависимостей нет:

    <dependency>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
    </dependency>

    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-catalina</artifactId>
        <version>8.0.23</version>
    </dependency>
sslavian812
источник
Не могли бы вы объяснить, почему? У меня есть такие зависимости в одном из моих проектов. и все вроде нормально.
Аспрелис
0

Возможная причина проблемы: ошибка ввода пути к файлу хранилища ключей:

keystoreFile="conf/cert/certificate.ks"
Оливье Фошо
источник
это действительно может произойти, и вы можете не заметить ошибку во время процесса загрузки сервера
hello_earth