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 的文件
解决方法:官网重新下载安装即可。你如果出现问题的包也是官网下载的,那么就尝试换个镜像重新下载,
因为我这个问题,也是官网下载的包出现的问题。
五、Tomcat启动报很奇怪的错,好像启动的是其他项目
原因:同一个服务器上启动了多个tomcat,但是没有设置启动位置,默认启动位置冲突导致。
修改startup.bat/startup.sh
在头部加入
set CATALINA_HOME=D:\tomcat_web_path set CATLINA_BASE=D:\tomcat_web_path set JAVA_HOME="%CATALINA_HOME%\jre\jdk1.8.0_191"
重启ok
(。・v・。)