1、启动时出现:
Exception starting filter struts2 java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUt
添加 commons-lang3-3.1.jar 包到 WEB-INF\lib 目录下
2、网站发布之后,在 tomcat\logs 目录下根据时间查看错误信息,每个都看一下。
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>-->
(一般是当将网站放到其它的服务器上时会出现该问题)
在 tomcat\logs\ 目录中查看当天的记录,出现的异常是:
- 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\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\ 目录下就会生成可在服务器上运行的文件,直接将文件夹复制到目标服务器的
tomcat\webapps\ 目录下,可用 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