• tomcat常见错误及解决方案


    一,tomcat启动时错误

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

    Re:没有在在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

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

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

    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

    二  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安装目录workCatalinalocalhost{webAppName}SESSIONS.ser,删除此文件

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

  • 相关阅读:
    jdbc连接池中c3p0的配置文件的详解以及在在java中如何使用
    idea导入myeclipes项目、运行项目
    java中身份证号和的银行卡的深度校验
    springBoot的搭建使用记录
    java分模块项目在idea中使用maven打包失败(ps:maven常用到的命令)
    js获取当前页面相关信息
    mybatis使用中的记录
    tomcat服务的启动与隐藏启动(win)
    cmd命令关闭占用程序的端口
    ping端口是否开放(windows,macos,linux)
  • 原文地址:https://www.cnblogs.com/dingjiaoyang/p/5537119.html
一二三 - 开发者的网上家园