• Tomcat 一般异常处理方式


    1、启动时出现:

      Exception starting filter struts2 java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUt
    

      添加 commons-lang3-3.1.jar 包到 WEB-INFlib  目录下

    2网站发布之后,在 tomcatlogs 目录下根据时间查看错误信息,每个都看一下。

    3、Struts 2 项目,当在 web.xml 中添加 struts 2 的过滤器 <filter> 后所有的网页都不可以访问,去掉之后就正常:

    <!--
    <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>actionPackages</param-name> <param-value>com.mycompany.myapp.actions</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
    -->

      (一般是当将网站放到其它的服务器上时会出现该问题)

    在 tomcatlogs 目录中查看当天的记录,出现的异常是:

    SEVERE: Exception starting filter struts2
    java.lang.UnsupportedClassVersionError: com/demo/struts2/actions/TestAction : Unsupported major.minor version 52.0 (unable to load class com.demo.struts2.actions.TestAction)
    	at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2908)
    	at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1173)
    	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1681)
    	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    	at com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:139)
    	at com.opensymphony.xwork2.ObjectFactory.getClassInstance(ObjectFactory.java:100)
    	at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:366)
    	at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:329)
    	at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:429)
    	at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:239)
    

     解决:

         1、查看目标服务器使用的 Java (jdk)版本 : cmd -->  java -version 可以看到 jdk 版本

         2、Eclipse 中,选择项目文件,右键 --> Properties  -->  Project Facets  ,在右边选择 java 版本(与目标服务器上 Java 版本相匹配,低版本的项目可在高版本服务器上运行,反则不行)

         3、运行一下项目,然后在 workspace.metadata.pluginsorg.eclipse.wst.server.core mp0wtpwebapps 目录下就会生成可在服务器上运行的文件,直接将文件夹复制到目标服务器的

    tomcatwebapps 目录下,可用 http://localhost:8080/test/ 查看

    4、 启动时错误:

    [ERROR][2014-11-06 19:42:50] Dispatcher initialization failed
    java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    	at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject(ContainerImpl.java:301)
    	at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.construct(ContainerImpl.java:438)
    	at com.opensymphony.xwork2.inject.ContainerBuilder$5.create(ContainerBuilder.java:207)
    	at com.opensymphony.xwork2.inject.Scope$2$1.create(Scope.java:51)
    	at com.opensymphony.xwork2.inject.ContainerBuilder$3.create(ContainerBuilder.java:93)
    	at com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:487)
    	at com.opensymphony.xwork2.inject.ContainerBuilder$7.call(ContainerBuilder.java:484)
    	at com.opensymphony.xwork2.inject.ContainerImpl.callInContext(ContainerImpl.java:584)
    	at com.o
    

      添加  javassist-3.11.0.GA.jar  包,重启服务器 OK

  • 相关阅读:
    syslog(),closelog()与openlog()--日志操作函数 (1)
    C语言之strrchr函数
    HTTP 报文
    Apache Hive 建表操作的简单描述
    Apache Hive 简介及安装
    Hadoop之MapReduce(二)序列化,排序及分区
    Hadoop之MapReduce(一)简介及简单案例
    Hadoop之HDFS(三)HDFS的JAVA API操作
    Hadoop之HDFS(二)HDFS基本原理
    Hadoop之HDFS(一)HDFS入门及基本Shell命令操作
  • 原文地址:https://www.cnblogs.com/blueherb/p/4077352.html
Copyright © 2020-2023  润新知