Обновлено 31.05.2012
У меня есть VPS и сервер Tomcat работает без проблем более года. Однако Tomcat просто выключается сразу после обслуживания VPS и не может быть запущен снова неделю назад. Поэтому я заглянул в catalina.out и обнаружил, что на моем VPS отсутствует собственная библиотека Apache Tomcat:
root@cdou:/home/tomcat/logs# vim catalina.out May 28, 2012 8:32:02 AM
org.apache.catalina.core.AprLifecycleListener init INFO: The APR based
Apache Tomcat Native library which allows optimal performance in
production environments was not found on the java.library.path:
/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-6-openjdk/jre/lib/amd64:/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib/jni:/lib:/usr/lib
поэтому я погуглил и установил libtcnative-1, но все равно не повезло, теперь catalina.out дает мне это:
An older version 1.1.19 of the APR based Apache Tomcat Native library is installed, while Tomcat recommends a minimum version of 1.1.2
Я буду :
Надеюсь, это поможет .
Установка собственной библиотеки является оптимизацией и не остановит запуск Tomcat.
Следовательно, предупреждающее сообщение регистрируется только в INFO
уровень;
INFO: The APR based Apache Tomcat Native library which allows optimal performance
in production environments was not found
Следовательно, вы могли бы искать другое сообщение на SEVERE
или CRITICAL
уровень:
Вы можете искать такие серьезные ошибки при запуске;
# egrep "(SEVERE|WARN|CRIT|ERROR)" /var/log/tomcat6/catalina.out
SEVERE: The web application [/republish] appears to have started a thread named [Timer-1608] but has failed to stop it. This is very likely to create a memory leak.
SEVERE: The web application [/republish] appears to have started a thread named [Timer-1609] but has failed to stop it. This is very likely to create a memory leak.
Чтобы дважды проверить статус, вы можете запустить netstat -lntp | grep :8080
проверить, слушает ли его;
# netstat -lntp | grep ":8080"
tcp 0 0 :::8080 :::* LISTEN 32195/java
также ищите его в списке процессов;
# ps -ef | grep tomcat
root 20558 20374 0 13:39 pts/0 00:00:00 grep tomcat
tomcat 32195 1 1 May27 ? 00:56:16 /usr/lib/jvm/java/bin/java -Xmx1024M -Djava.awt.headless=true -XX:-HeapDumpOnOutOfMemoryError -classpath :/usr/share/tomcat6/bin/bootstrap.jar:/usr/share/tomcat6/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat6 -Dcatalina.home=/usr/share/tomcat6 -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat6/temp -Djava.util.logging.config.file=/usr/share/tomcat6/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap start
если у вас есть порт 8080, который слушает, и у вас есть запись в ps -ef
output, затем он прошел фазу запуска и запускает сервер на порту 8080.
Если у вас все еще ничего нет, опубликуйте оставшуюся часть файла catalina.out, который был зарегистрирован во время фазы запуска tomcat6.