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

一、tomcat启动时错误

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

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

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

 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不能启动

解决:可能是前一次执行./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

二、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表示服务器内部发生错误等!

总结

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

(0)

相关推荐

  • 搭建Tomcat 8源码开发环境的步骤详解

    前言 最近在网上搜索了很多关于tomcat源码环境搭建的文章,发现按照文章的步骤,几乎都启动不了,于是自己尝试搭建,下面是搭建的方法. 基础环境搭建 1.下载tomcat源代码,我这里是通过svn的方式下载的,svn下载地址 2.下载安装maven工具,这里我就不多说了,安装说明太多了,自己网上找. 3.IDE,我这里使用idea 生成maven工程 我的代码本地目录是: /Users/helanzhou/Documents/helanzhou/java/Tomcat/tomcat8/tomca

  • HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天

    1.什么是WebSocket? WebSocket 是一种自然的全双工.双向.单套接字连接.使用WebSocket,你的HTTP 请求变成打开WebSocket 连接(WebSocket 或者WebSocket over TLS(TransportLayer Security,传输层安全性,原称"SSL"))的单一请求,并且重用从客户端到服务器以及服务器到客户端的同一连接.WebSocket 减少了延迟,因为一旦建立起WebSocket 连接,服务器可以在消息可用时发送它们.例如,和轮

  • Tomcat 7通过设置不同的端口部署两个项目

    这篇文章介绍的方法是通过添加一个不同的端口号方式来实现.方法如下: 1.修改../tomcat/conf/server.xml,原有代码如下: <Service name="Catalina"> <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/> <

  • 对一个tomcat实现多端口、多域名访问的方法

    1.找到tomcat的主目录,打开conf文件夹,找到并打开server.xml文件. 编辑server.xml文件,在<Service></Service>标签中添加: <Connector port="9090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 如图: 2.进行步骤1中的配置,多端口

  • Docker 自动部署tomcat详解

    Docker 自动部署tomcat 1. 下载镜像 # Docker pull centos:latest  #获取最新的centos镜像 2. 启动容器 #docker run -i -t -v /home/user/software/:/home/software/ imageId /bin/bash 其实包含以下三个部分: docker run <相关参数> <镜像ID> <初始命令> 其中,相关参数包括: -i:表示以"交互模式"运行容器 -

  • tomcat报错:Wrapper cannot find servlet class ...问题解决

    tomcat发布工程时,在浏览器输入正确的地址,遇到如下问题: HTTP Status 500 - javax.servlet.ServletException: Wrapper cannot find servlet class xxx or a class it depends on .... .... java.lang.ClassNotFoundException: xxx .... ... 问题分析: web.xml文件中<servle-mapping>和<servlet-cl

  • linux下实时查看tomcat运行日志的方法

    1.先切换到:cd usr/local/tomcat5/logs 2.tail -f catalina.out 3.这样运行时就可以实时查看运行日志了 Ctrl+c 是退出tail命令. 顺便讲一下Linux中tail命令 tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容. 1.命令格式; tail[必要参数][选择参数][

  • 在同一台服务器上配置多个Tomcat的方法

    如果要在一台服务器上配置多个Tomcat,主要就是要避免Tomcat服务器的端口冲突的问题.只需要修改CATALINA_HOME\conf\server.xml中的启动端口和连接端口就OK了! 下面我们把配置的详细过程写在下面,以供参考:(此例以配置三个Tomcat为例) 1. 下载apache-tomcat-7.0.63,下载地址:http://tomcat.apache.org/download-70.cgi下载下来的文件为apache-tomcat-7.0.63.zip. 2. 解压该压缩

  • Tomcat报错:HTTP Status 500 (Wrapper cannot find servlet class)解决办法

    Tomcat报错:HTTP Status 500 - Wrapper cannot find servlet class HTTP Status 500 - Wrapper cannot find servlet class com.servlet.servlet.RegServlet or a class it depends on type Exception report message Wrapper cannot find servlet class com.servlet.servl

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

    一.tomcat启动时错误 问题1:The JAVA_HOME environment variable is not defined This environment variable is needed to run this program: 解决:没有在tomcat的配置文件.bash_profile中设置环境变量JAVA_HOME,具体设置方法为:加入如下几行: JAVA_HOME=/home/tomcat/j2sdk1.4.2_08(具体值要以实际的jdk安装路径为准) export

  • Android笔记整理之常见错误及解决方案汇总

    一.No active compatible AVD's or devices found. Relaunch this configuration after connecting a device or starting an AVD. 修改adb server的端口,设置一个系统环境变量ANDROID_ADB_SERVER_PORT,值7913(随意一个数字),再启动adb server 步骤: a)进入cmd命令模式 b)cd XXX\platform-tools c)adb start

  • 10种JavaScript最常见的错误(小结)

    前言 查看了数千个项目后,发现了 10 个最常见的 JavaScript 错误.我们会告诉你什么原因导致了这些错误,以及如何防止这些错误发生.如果你能够避免落入这些 "陷阱",你将会成为一个更好的开发者. JavaScript 常见错误 Top 10: 为了便于阅读,我们将每个错误描述都尽量简化.接下来,让我们深入到每一个错误,来了解是什么会导致它,以及如何避免这个问题. 1.Uncaught TypeError: Cannot read property 如果你是一个 JavaScr

  • Android 常见bug汇总及解决方案

    作为开发人员,平时总会遇到各种各样的问题,之前都没有收集bug的习惯,遇到相同的问题总会有种莫名的熟悉感,或许把问题都汇总,方便查找,也可以给大家踩踩坑,后面会陆续更新补充! 1.关于使用OkHttp运行时出现的错误 报错如下: Static interface methods are only supported starting with Android N (--min-api 24):  okhttp3.Request okhttp3.Authenticator.lambda$stati

  • Spring Boot MQTT Too many publishes in progress错误的解决方案

    目录 前言 原因分析 源码分析 MQTT的Push消息到缓存中时序图 MqttPahoMessageHandler的publish方法 MqttAsyncClient的publish方法 ClientComms的internalSend方法 ClientState的send方法 异步发送消息时序图 ClientComms的conncect方法 ConnectBG的run方法 CommsSender的run方法 CommsSender的notifySent方法 小结 解决方案 方案1:发送消息时设

  • IOS 常见内存泄漏以及解决方案

    IOS 常见内存泄漏以及解决方案 整理了几个内存泄漏的例子,由于转载地址已经找不到了,在这里就不一一列出来了. 1 OC和CF转化出现的内存警告 CFStringRef cfString = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)picDataString,NULL,CFSTR(":/?#[]@!$&'()*+,;="),kCFStringEncodingUTF8); N

  • SQL Server 2005附加数据库时Read-Only错误的解决方案

    SQL Server 2005附加数据库文件时出现了Read-Only错误,附加的时候,系统提示mdf文件为只读,可是打开文件属性,这个属性不为只读.该怎么解决呢?本文我们就介绍了这一解决方案,接下来就让我们来一起了解一下吧. 两种解决方法如下: 1.重新打开数据库软件,在登录认证框那里选择:Windows authentication进行登录.然后再附加数据库,这时附加的就没有Read-Only了. 2.在*.mdf文件的属性里,找到"安全"页,然后把里面所有的"组或用户名

  • 详解Vue中使用v-for语句抛出错误的解决方案

    Vue 中使用v-for语句抛出错误的解决方案 今天在维护以前的项目的时候遇见了下面的报错情况,开始我以为是因为jQuery和Vue冲突了,所以把以前的jQuery改了,但是还是出现同样的错误-通过查阅资料,发现是因为循环的变量里面的值重复了,导致Vue报错. 复制代码 代码如下: Uncaught (in promise) TypeError: Cannot read property 'removeChild' of null 接下来查了一下解决方案,发现在Vue 2.0之前的版本可以通过在

  • IIS Tomcat共享80端口的解决方案

    为什么有这种需求,原因是这样的,公司有一个Java的web项目,在另一台服务器A上,最近老板一时兴起,想把他合并到这台稳定点的服务器B上,服务器B上使用IIS来寄宿asp.net 网站,怎么办呢,硬着头皮上吧,在网上找各种解决方案: 解决方案一:isapi_redirect 这个方法按照方法试了N次就是没搞定, 解决方案二:IIS反向代理 基本逻辑就是请求来到IIS,IIS根据路由规则把请求转发给Tomcat处理,然后tomcat把响应返回给IIS, 这个方案依然只是IIS独占端口80,看起来的

  • VC6.0常见编译错误提示附解决方法

    (1)error C2001: newline in constant 编号:C2001直译:在常量中出现了换行.错误分析: 1.①字符串常量.字符常量中是否有换行.2.②在这句语句中,某个字符串常量的尾部是否漏掉了双引号.3.③在这语句中,某个字符创常量中是否出现了双引号字符""",但是没有使用转义符"\"".4.④在这句语句中,某个字符常量的尾部是否漏掉了单引号.5.⑤是否在某句语句的尾部,或语句的中间误输入了一个单引号或双引号. (2)er

随机推荐