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