tomcat不会在ubuntu服务器上启动

原帖

更新于31/05/2012

我有一个VPS并运行一年的Tomcat服务器没有问题。 但是,Tomcat只是在VPS维护之后立即closures,并且一个星期前不能再启动。 所以我看着catalina.out,发现我的VPS缺less一个Apache Tomcat Native库:

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 

所以我search并安装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 

我会 :

  1. 查找configuration的应用程序使用的任何特定侦听器
  2. 临时禁用iptables,所以我可以确保端口不被阻塞
  3. 看看是否有任何特定的绑定到IP。
  4. 手动启动Tomcat(而不是服务)并查看启动时发生的错误。

我希望这有帮助 。

本地库安装是一个优化,不会阻止tomcat启动。

因此,警报消息仅logging在INFO级别;

 INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found 

因此,您将在SEVERECRITICAL级别上寻找其他信息:

你可以像这样search严重的启动错误;

 # 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检查是否在监听;

 # 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输出中有条目,那么它会在启动阶段完成,并在端口8080上运行服务器。

如果你仍然没有任何东西,那么请张贴在tomcat6开始阶段logging的catalina.out文件的其余部分。