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

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

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

  折騰了半天,終於知道了緣由,在搭建struts2的環境時,通常的作法是把jar包拖到WEB-INF下的lib文件中,Tomcat啓動時,會到這個目錄下加載jar文件,但若是你使用的是User Libraries,那麼就在lib下就沒有相應的jar文件了,雖然程序編譯是沒有問題的,但頗有可能Tomcat啓動時會報這個錯,服務器

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

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

  第一種方法(成功):hibernate

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

  第二種方法(失敗):調試

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

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

 

      第三種方法(成功):

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

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

  

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

從新部署項目,啓動Tomcat,問題解決!~~~~~

相關文章
相關標籤/搜索