Struts2環境下Tomcat啟動異常:Exception starting filter struts2,報了一個java.lang.ClassNotFoundException


在寫一個struts2+hibernate整合的小例子時,啟動Tomcat服務器,報了一個:

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

  折騰了半天,終於知道了原因,在搭建struts2的環境時,一般的做法是把jar包拖到WEB-INF下的lib文件中,Tomcat啟動時,會到這個目錄下加載jar文件,但如果你使用的是User Libraries,那么就在lib下就沒有相應的jar文件了,雖然程序編譯是沒有問題的,但很有可能Tomcat啟動時會報這個錯,

  原因很簡單:eclipse發布項目的時候並未自動將引用的jar包copy到WEB-INF/目錄下,導致編譯器找不到所使用的class.

百度了半天,找到了三種解決方案,一一試過了,只有兩種成功解決了問題

  第一種方法(成功):

    很簡單,拋棄使用User Librariy,將所有jar文件放到lib文件目錄下,問題解決.但這並不是我想要的.

  第二種方法(失敗):

    配置Tomcat的時候,默認選擇的是"debug"模式,即調試模式,需要設置成"run"也就是運行模式

步驟為:Windows->preferences->My eclispe->servers->找到你使用的Tomcat->Lauch.

 

      第三種方法(成功):

    手動將User library中的jar包添加到項目發布時自動加載的目錄下:

    選中項目,右鍵選擇Properties->Myeclispe->Deployment Assembly->new:

  

選中你之前建好的User library,點擊finish:

重新部署項目,啟動Tomcat,問題解決!~~~~~

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM