启动应用时出现此错误。
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中。但它不兼容。
问题是什么?
使用的罐子
答案 0 :(得分:1)
以下最小罐子应该在您的类路径中:
答案 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点击问题选项)
它对我有用,可能对你有帮助。