服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Tomcat - tomcat常见的错误与解决方案小结

tomcat常见的错误与解决方案小结

2021-08-13 18:11DracoTianlong Tomcat

web容器其实都是tomcat,但tomcat的内核很丰富,如果要完全理解需要很长的时间和较多的编程经验。不管是初学者还是有经验的web程序员,使用Tomcat容器的时候会发生包括404,运行启动错误,以及乱码等等的问题,本文将开发过程中遇

一、tomcat启动时错误

问题1:The JAVA_HOME environment variable is not defined This environment variable is needed to run this program;

解决:没有在tomcat的配置文件.bash_profile中设置环境变量JAVA_HOME,具体设置方法为:加入如下几行:

?
1
2
3
4
5
JAVA_HOME=/home/tomcat/j2sdk1.4.2_08(具体值要以实际的jdk安装路径为准)
 
export JAVA_HOMECLASSPATH=/home/tomcat/j2sdk1.4.2_08/lib/tools.jar:/home/tomcat/j2sdk1.4.2_08/lib/dt.jar
 
export CLASSPATH

问题2:Error occurred during initialization of VM Could not reserve enough space for object heap

解决:在tomcat的bin目录下,catalina.sh文件的tomcat内存参数配置过大,超过机器可用内存总数造成,修改到适当的值即可,修改的参数为:JAVA_OPTS="-Xms50m -Xmx60m"

问题3:tomcat启动时报某个目录没有权限,启动失败,或者不能执行某些jsp页

解决: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所有用户都有读写执行权限:

?
1
chmod 777 [tomcat的上级目录]

 

2. 设置tomcat5.0.28目录下的所有文件的属主为tomcat:

?
1
chown -R tomcat [tomcat安装目录]

3. 设置所有tomcat5.0.28下的所有文件和目录的属主(tomcat)具有读写执行权限

?
1
chmod 700 -R /opt/tomcat5.0.28

问题4:执行startup.sh文件后告诉地址已经使用,导致tomcat不能启动

解决:可能是前一次执行./shutdown.sh文件关闭tomcat时没有停止已经启动的Java进程,而这个进程仍然在监听tomcat所使用的端口,或者有另外一个tomcat正在运行,server.xml文件中的监听端口和当前tomcat冲突。

使用下面命令查看当前系统是否有正在监听的端口(8080--webcache, 90--www或http).

     1. 列出所有系统正在监听的端口和绑定的地址netstat -l

     2. 找出当前系统中的所有进程,管道符号过滤输出显示包含java字符串的行

?
1
2
3
4
5
ps -A |grep java
 
tty time proc
 
1021 ? java

     3. 结束一个指定的进程:

?
1
kill [进程号]

     4. 强制杀死一个进程:

?
1
kill -9 [进程号]

     如果确定不是别的tomcat运行导致的冲突或者没有java进程运行可以再次运行startup.sh文件启动tomcat

二、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

解决:数据库未开情况下运行tomcat出现的问题,把数据库打开就行了

问题4:java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Vat net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77) 这个问题是最最常见的,第一次整合ssh的时候会发现这个问题,有时候删除掉相关的包还是会冲突。所以解决办法我一般是:

解决:把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

解决:一般提示这种错误表示VO中的form没有实例化,在reset方法中new一下就Ok了。养成良好的编码习惯可以避免这种简单错误。

问题6:严重: Exception loading sessions from persistent storage

解决:tomcat安装目录\work\Catalina\localhost\{webAppName}\SESSIONS.ser,删除此文件

三、出现404错误是因为你所请求的页面不可用!

这是response对象的http响应中的状态行404表示当前请求的页面不可用!200表示测试通过。500表示服务器内部发生错误等!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

延伸 · 阅读

精彩推荐
  • Tomcat如何将Tomcat设置为自动启动的服务最快捷方法

    如何将Tomcat设置为自动启动的服务最快捷方法

    这篇文章主要介绍了如何将Tomcat设置为自动启动的服务最快捷方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    锋齐叶落5352021-09-03
  • TomcatTomcat正常访问localhost报404问题解决

    Tomcat正常访问localhost报404问题解决

    这篇文章主要介绍了Tomcat正常访问localhost报404问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    小明Style5592021-09-23
  • TomcatTomcat目录结构详解

    Tomcat目录结构详解

    Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,学习tomcat目录结构十分有必要,今天小编给大家带来了详细教程,感兴趣的朋友一起看看吧...

    ThinkWon6712021-09-09
  • Tomcat浅谈Tomcat多层容器的设计

    浅谈Tomcat多层容器的设计

    Tomcat的容器用来装载Servlet。那Tomcat的Servlet容器是如何设计的呢,本文就详细的来介绍一下,具有一定的参考价值,感兴趣的可以了解一下...

    JavaEdge.9612021-09-26
  • TomcatTomcat服务器搭建教程

    Tomcat服务器搭建教程

    这篇文章主要为大家详细介绍了Tomcat服务器搭建教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Watom_66310452021-08-20
  • Tomcat学习javaweb如何配置Tomcat的热启动

    学习javaweb如何配置Tomcat的热启动

    学习javaweb的时候每次更改项目都需要重新部署项目,如此一来比较麻烦,使用tomcat的热启动就可以解决这个问题...

    whsnow12072021-08-04
  • Tomcat如何查看tomcat的控制台输出的方法

    如何查看tomcat的控制台输出的方法

    这篇文章主要介绍了如何查看tomcat的控制台输出的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    CaiCaiNeo11972021-08-29
  • Tomcattomcat 6.0.20在一个机器上安装多个服务的方法

    tomcat 6.0.20在一个机器上安装多个服务的方法

    本文主要为大家介绍tomcat 6.0.20在一个机器上安装多个服务的方法,当前前提是你已经可以同时运行他们了,他们的端口不能相同,这里只是解释如何把它们...

    Tomcat教程网10052021-08-03