tomcat常见错误及解决方案java
无论是初学者仍是有经验的web程序员,使用Tomcat容器的时候会发生包括404,运行启动错误,以及乱码等等的问题,如今我将开发过程当中遇到的常见错误和简单解决方法贴出来供你们看看,里面有部分是同事总结,咱们共同完成的这篇文章。。。程序员
1:The JAVA_HOME environment variable is not defined This environment variable is needed to run this program;web
Re:没有在在tomcat的配置文件.bash_profile中设置环境变量JAVA_HOME,具体设置方法为:加入以下几行:spring
JAVA_HOME=/home/tomcat/j2sdk1.4.2_08(具体值要以实际的jdk安装路径为准)sql
export JAVA_HOMECLASSPATH=/home/tomcat/j2sdk1.4.2_08/lib/tools.jar:/home/tomcat/j2sdk1.4.2_08/lib/dt.jar数据库
export CLASSPATHapache
2。 Error occurred during initialization of VM Could not reserve enough space for object heaptomcat
Re:在tomcat的bin目录下,catalina.sh文件的tomcat内存参数配置过大,超过机器可用内存总数形成,修改到适当的值便可,修改的参数为:JAVA_OPTS="-Xms50m -Xmx60m"安全
3 . tomcat启动时报某个目录没有权限,启动失败,或者不能执行某些jsp页bash
Re:tomcat须要tomcat用户具备一些目录和文件的相应权限, 全部目录应该具备读写执行(浏览)的权限,jsp,class文件应该最少具备读权限, 一些文件须要写权限,下面是已知的须要读写权限文件的列表:
$CATALINA_HOME/logs下全部文件
$CATALINA_HOME/work下全部文件
$CATALINA_HOME/publish/main/count.txt文件
$CATALINA_HOME/publish/chatroom/resource下的全部.xml文件
全部上传图片目录都须要写权限。
改变文件目录权限的方法:执行下面命令,设置全部的tomcat安装下的文件和目录,能够保证执行,可是不是很安全。
1. 设置tomcat上级目录/opt全部用户都有读写执行权限:
chmod 777 [tomcat的上级目录]
2. 设置tomcat5.0.28目录下的全部文件的属主为tomcat:
chown -R tomcat [tomcat安装目录]
3. 设置全部tomcat5.0.28下的全部文件和目录的属主(tomcat)具备读写执行权限
chmod 700 -R /opt/tomcat5.0.28
4. 执行startup.sh文件后告诉地址已经使用,致使tomcat不能启动
Re:多是前一次执行./shutdown.sh文件关闭tomcat时没有中止已经启动的java进程,而这个进程仍然在监听tomcat所使用的端口,或者有另一个tomcat正在运行,server.xml文件中的监听端口和当前tomcat冲突。
使用下面命令查看当前系统是否有正在监听的端口(8080--webcache, 90--www或http).
1. 列出全部系统正在监听的端口和绑定的地址netstat -l
2. 找出当前系统中的全部进程,管道符号过滤输出显示包含java字符串的行
ps -A |grep java
tty time proc
1021 ? java
3. 结束一个指定的进程:
kill [进程号]
4. 强制杀死一个进程:
kill -9 [进程号]
若是肯定不是别的tomcat运行致使的冲突或者没有java进程运行能够再次运行startup.sh文件启动tomcat
1. org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Network error IOException: Connection refused: connect)
2. Caused by: java.sql.SQLException: Network error IOException: Connection refused: connect
3. Caused by: java.net.ConnectException: Connection refused: connect
Re:数据库未开状况下运行tomcat出现的问题,把数据库打开就好了
4.java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77) 这个问题是最最多见的,第一次整合ssh的时候会发现这个问题,有时候删除掉相关的包仍是会冲突。因此解决办法我通常是:
Re:把MyEclipse中的Hibernate中的有关ASM的包所有删除,将spring中asm包拷贝进去重启就Ok了,有时候须要删除其余文件,到网上找找吧;
还有个解决办法:Spring 和 Hibernate 共用的一些 jar 文件发生了版本冲突, 删除 WEB-INF/lib/asm-2.2.3.jar 而后重启 Tomcat.
5 .javax.servlet.jsp.JspException: Invalid argument looking up property usersVO.account of bean loginForm
Re,通常提示这种错误表示VO中的form没有实例化,在reset方法中new一下就Ok了。养成良好的编码习惯能够避免这种简单错误。
6.严重: Exception loading sessions from persistent storage
Re:tomcat安装目录\work\Catalina\localhost\{webAppName}\SESSIONS.ser,删除此文件