Struts2中的ClassNotFoundException StrutsPrepareAndExecuteFilter

时间:2014-04-22 13:19:56

标签: struts2 classnotfoundexception

启动应用时出现此错误。

SEVERE: Exception starting filter struts2 java.lang.ClassNotFoundException: 
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

并且服务器连续两次发出此错误。

我在 WEB-INF / lib 中有struts2-core-2.3.15.2.jar并导入构建路径 ..我不明白为什么找不到StrutsPrepareAndExecuteFilter 。

应用程序可以开始使用。那没问题。问题是由于这个错误,struts2无法重定向操作。

我使用tomcat 7和struts2 2.3.16。因为它的tomcat 7,我认为servelet-api不是3.0。我试图将servelet-api-3.0放在tomcat / lib中。但它不兼容。

问题是什么?

使用的罐子

enter image description here

5 个答案:

答案 0 :(得分:1)

以下最小罐子应该在您的类路径中:

  • ASM-3.3.jar
  • ASM-公地3.3.jar
  • ASM-树-3.3.jar
  • 公地文件上传-1.3.jar
  • 公地-IO-2.2.jar
  • 公地lang3-3.1.jar
  • 共享记录-1.1.3.jar
  • 的freemarker-2.3.19.jar
  • 了Javassist-3.11.0.GA.jar
  • 的log4j-1.2.17.jar
  • OGNL-3.0.6.jar
  • struts2的核 - 2.3.16.jar
  • XWork的核 - 2.3.16.jar

您也可以关注How To Create A Struts 2 Web Application

答案 1 :(得分:0)

运行时问题最终通过替换json jars包解决了..我认为它的版本问题。这是一个完整的包。我现在不记得链接..

所以看起来最好从一个来源获取jar文件,但不要选择不同的版本..这些6个罐子应该包含在一起。当然,要小心版本。我不懂我的。但它确实有效。

commons-lang.jar
commons-logging.jar
commons-beanutils.jar
commons-collections.jar
json-lib-2.2.2-jdk15.jar
ezmorph.jar

但是这个问题仍然存在......我有这个错误,但应用可以运行

java.lang.ClassNotFoundException: 
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

答案 2 :(得分:0)

也许 WEB-INF / lib 中的jar不会被复制到Tomcat的 WEB-INF / lib 。请参阅 Deployment assembly property pages,它允许您向应用程序添加灵活的资源和依赖关系映射。

答案 3 :(得分:0)

如果您使用的是外部JRE,则可能无效。 而是使用内部JRE(在JDK内部)

在项目中

转到构建路径

- >配置构建路径

- >库

- >添加库

- >已安装的JRR

- >给出" JDK"(而不是外部JRE)的路径

- >完成

刷新项目,它会起作用。

答案 4 :(得分:0)

如果您使用Intellij IDEA,原因可能是您没有将struts-xxx.xxx.jar文件添加到工件中。要解决此问题,您只需要打开项目结构>> 问题>> 将struts x.x.x添加到工件 righit点击问题选项

它对我有用,可能对你有帮助。