這是我這幾天遇到的一個問題,最後發現是一個低級的錯誤,不過還是值得記錄下來:
1、問題現象:
我在Eclipse通過MyEclipse建立一個WebProject,使用Struts1.2。在Eclipse運作沒有問題,于是就是用Eclipse的Export功能,導出為一個war檔案,将該war檔案解壓後放到了Tomcat的webapps目錄,啟動tomcat。通路時在浏覽器中就遇到了問題:
javax.servlet.ServletException: Cannot find ActionMappings or ActionFormBeans collection
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.index_jsp._jspService(index_jsp.java:102)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
運作環境: Tomcat5.5.23, JDK1.5.14
2、問題原因
MyEclipse使用的JDK版本(1.6)和Tomcat使用的版本(1.5)不一緻。當我把Struts去掉,直接使用Servlet時,問題就暴露了, 提示Bad version in .class file. 于是更改了Tomcat使用的JDK版本,問題解決。
多種情況會導緻這個問題,但大緻就是以下幾種情況:
1。Web.xml未初始化問題
少了一個 <load-on-startup>0 </load-on-startup>
這樣開始是沒有加載這個類,就沒有初始化struts-config.xml,是以找不到
actionmappings or actionformbeans collection。
2。struts-config.xml問題
3。jar包不全或版本不對
也有可能導緻這個問題,從stuts例子裡面拷過來就好了。struts1.1自帶共10個jar包。
4。編譯問題
有可能Action和Formbean沒有編譯,也會有這個問題,檢查一下有沒有對應的class檔案就好。class路徑不對可能也會導緻這個問題。
5。版本問題
用的servlet容器和struts版本不對或這兩個版本協調有問題。
在以上幾條都不能解決問題的情況下,可能就是版本的問題了,換個高版本試試吧
Cannot find ActionMappings or ActionFormBeans collection的錯誤調試
今天在做struts的連接配接試驗,結果配置完成之後發現調不通,運作之後,出現錯誤:
反複修改web.xml 和 struts-config.xml 無果。
确定配置沒錯之後,從其他方面找原因。
最後發現,類庫中jar包不全,于是将
commons-beanutils.jar
commons-collections.jar
commons-dbcp.jar
commons-digester.jar
commons-fileupload.jar
commons-lang.jar
commons-pool.jar
commons-resources.jar
commons-validator.jar
拷入lib中,問題得到解決,并調試通過。