tomcat启动失败问题总结

一.端口占用

linux下启动tomcat的时候,如果服务启动不成功,可以到查看logs文件夹下的catalina.out  日志文件,cat我的日志文件可得到如下的错误信息:(Caused by: java.lang.Exception: Socket bind failed也是端口占用)

cat catalina.out

Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 8101; nested exception is:

java.net.BindException: Address already in useFeb 27, 2011 3:25:39 PM org.apache.catalina.loader.WebappClassLoader loadClassINFO: Illegal access: this web application instance has been stopped already. Could not load com.funambol.server.tools.directorymonitor.FileChangeEvent. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.

从字面上来看,是我的8101端口被占用了,应该是rmi需要用到这个端口,于是使用

netstat -anp

命令来查看各端口被进程占用的情况,这个命令输出包括进程的pid,得到这个pid之后,使用命令:

ps -ef|grep PID

即可查看进程的详细情况。

如果确认此进程可停止的话,

kill pid

重启tomcat就OK了!

二.tomcat无法获取到环境变量

在linux下安装好tomcat启动时报如下错误:

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 
At least one of these environment variable is needed to run this program

原因:找不到jdk或者jre路径。

解决办法:在setclasspath.bat的开头声明环境变量,打开tomcat的bin目录下面的setclasspath.sh,添加红色部分,路径修改为自己机器jdk和jre路径即可。

#!/bin/sh
...

export JAVA_HOME=/opt/zimbra/jdk1.6.0_31
export JRE_HOME=/opt/zimbra/jdk1.6.0_31/jre

# Make sure prerequisite environment variables are set
if [ -z "$JAVA_HOME" -a -z "$JRE_HOME" ]; then

三.setclasspath.sh问题

这个可能是没有在 /etc/profile 中配置环境,这是第一种可能;如果是这种情况的话,可以这样做:

vim  /etc/profile

并在文件末尾加上

export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/usr/local/tomcat

最后  source  /etc/profile 使刚才的配置生效就可以了;

第二种可能,是bin目录下的文件权限不够,ll一下,然后给bin目录下的所有文件增加执行权限:

chmod a+x  *

四.错误: 找不到或无法加载主类 org.apache.catalina.startup.Bootstrap

问题描述:

tomcat安装之后,正常启动,但是ps 查看进程却没有发现启动,尝试关闭,弹出来错误信息。

找不到或无法加载主类 org.apache.catalina.startup.Bootstrap

原因:tomcat/bin下面缺少一个     bootstrap.jar  的文件

解决方法:官网重新下载安装即可。你如果出现问题的包也是官网下载的,那么就尝试换个镜像重新下载,

因为我这个问题,也是官网下载的包出现的问题。

后续添加....

上一篇:异常处理 day 30


下一篇:Spring Boot构建RESTful API与单元测试