2014-04-22 46 views
0

我在啓動應用程序時遇到了這個錯誤。Struts2中的ClassNotFoundException StrutsPrepareAndExecuteFilter

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

並且服務器連續兩次發出此錯誤。

我已經在WEB-INF/lib目錄並導入到構建路徑 Struts2的核心 - 2.3.15.2.jar ..我不明白爲什麼StrutsPrepareAndExecuteFilter無法找到。

該應用程序可以開始使用。那沒問題。問題是由於這個錯誤,struts2不能重定向這個動作。

我使用的是tomcat 7和struts2 2.3.16。因爲它是tomcat 7,servelet-api不是3.0我猜。我試圖把tomcat/lib中的servelet-api-3.0。但它不兼容。

最新的問題是什麼?

罐使用

enter image description here

+0

它要麼不被發現,或者你缺少的依賴。你需要確保你正在部署你自己認爲的東西。 –

+0

@Roman C,我有更多的罐子。只是沒有列出他們在這裏。太多。問題只是關於這個jar我認爲,cuz StrutsPrepareAndExecuteFilter只來自struts2-core-2.3.15.2.jar。 – user3560221

+0

@DaveNewton,你是什麼意思? – user3560221

回答

0

以下最低罐子應該在你的classpath:

  • ASM-3.3.jar
  • ASM-的commons-3.3.jar
  • asm-tree-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-core-2.3.16.jar

您還可以關注How To Create A Struts 2 Web Application

+0

我擁有所有這些。這不是我的第一個struts2項目。它直到今天都工作得很好。我用struts-2.3.16.1包中的所有jar替換了所有的jar。它仍然是一樣的。 – user3560221

+0

另請參閱[this](http://stackoverflow.com/q/5256939/573032)問題。 –

+0

@ user3560221你確定你有_replaced_所有人嗎?並且在類路徑中沒有fileupload jar。 Netbeans提供_clean和build_功能。在eclipse中也必須有類似的東西。嘗試如果它在那之後工作。 – maxx777

0

運行時問題最終通過替換json jar包來解決..我認爲它的版本問題。它是一個完整的包。我不記得現在的鏈接..

所以它似乎更好地從一個來源獲取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 
0

也許罐子在WEB-INF/lib目錄不會被複制到WEB-INF/lib下的Tomcat。請參閱Deployment assembly property pages,它允許您爲應用程序添加靈活的資源和依賴關係映射。

0

如果您正在使用外部的JRE,它可能無法正常工作。 而是使用內部JRE(這是內部JDK)

在項目

轉到構建路徑

- >配置構建路徑

- >庫

- - >添加庫

- >安裝JRRs

- >提供 「JDK」(而不是外部JRE)

的路徑 - >完成。

刷新該項目,它會工作。

0

如果你使用IntelliJ IDEA的,其原因也許你沒有添加的struts-xxx.xxx.jar文件artifacts.To解決這個問題,你只需要打開項目結構 >>問題 >>添加支柱xxx到文物righit點擊問題選項

它適用於我,它可以幫助你。