軟件工程第一章作業(yè)_第1頁
軟件工程第一章作業(yè)_第2頁
軟件工程第一章作業(yè)_第3頁
軟件工程第一章作業(yè)_第4頁
軟件工程第一章作業(yè)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、java 常見異常整理(1)_13首頁 |空間 | 登錄13 朋友多遍天下 主頁博客相冊|個人|好友 查看文章java 常見異常整理(1)2007 年 02 月 09 日異常五 23:18 大中小javax.servlet.jsp.JspException: Cannot retrieve map/Login (/Login 是你的 action 名字)for action可能原因action 沒有再 struts-config.xml 中定義,或沒有找到匹配的 action,例如在 JSP文件中使用html:formaction=Login.do.將表單提交給 Login.do 處理,如果出

2、現上述異常,請查看 struts-config.xml 中的定義部分,有時可能是打錯了字符或者是某些不符合規(guī)則,可以使用 strutsconsole 工具來檢查。異常.apache.jasper.JasperException: Cannot retrieve definition for form bean null可能原因這個異常是因為Struts 根據 struts-config.xml 中的map沒有找到action 期望的 formbean。大部分的情況可能是因為在 form-bean 中設置的 name 屬性和 action 中設置的 name 屬性不匹配所致。換句話說,actio

3、n 和 form 都應該各自有一個 name 屬性,并且要精確匹配,包括大小寫。這個錯誤當沒有 name 屬性和 action 關聯(lián)時也會發(fā)生,如果沒有在 action 中指定 name 屬性,那么就沒有 name 屬性和 action 相關聯(lián)。當然當 action 制作某些控制時,譬如根據參數值跳轉到相應的 jsp 頁面,而不是處理表單數據,這是就不用 name屬性,這也是 action 的使用方法之一。異常No action instance for path /x could be created可能原因特別提示:因為有很多中情況會導致這個錯誤的發(fā)生,所以大家調高你的web 服務器的日志

4、/調試級別,這樣可以從的信息中看到潛在的、在試圖創(chuàng)建 action 類時發(fā)生的錯誤,這個 action 類你已經在 struts-config.xml 中設置了關聯(lián)(即添加了)。在 struts-config.xml 中通過action的class 屬性指定的action 類不能被找到有很多種原因,例如:定位編譯后的.class 文件失敗。Failureto place compiled .class file for the actionhe classpath(在web 開發(fā)中,class 的的位置在 r WEB-INF/classes,所以你的 actionclass WEB-INF/c

5、lasseaction.Login).必 須 要 在 這 個 目 錄 下 。 例 如 你 的 action類 位 于ion/Login.class,那么在 struts-config.xml 中設置action 的屬性 type 時就是拼寫錯誤,這個也時有發(fā)生,并且不易找到,特別注意第一個字母的大小寫和包的名稱。異常javax.servlet.jsp.JspException: No getter method for propertyusername of bean.apache.struts.taglib.html.BEAN可能原因沒有位 form bean 中的某個變量定義 getter

6、 方法這個錯誤主要發(fā)生在表單提交的 FormBean 中,用 struts 標記時,在 FormBean 中必須有一個 getUsername()方法。注意字母“U”。異常java.lang.NoClassDefFoundError:/apache/strution/ActionForm可能原因這個錯誤主要發(fā)生在在classpath 中找不到相應的 Java.class 文件。如果這個錯誤發(fā)生在 web 應用程序的運行時,主要是因為指定的class 文件不在webserver 的classpath 中(/WEB-INF/classes 和/WEB-INF/lib)。在上面的錯誤中,原因是找不到

7、 ActionForm 類。異常javax.servlet.jsp.JspException: Exception creating bean of class.apache.strution.ActionForm: 1可能原因Instantiating Struts-provided ActionForm class directly instead ofinstantiating a class derived octionForm. This mightoccurimplicitly if you specifyt a form-bean is this StrutionFormclas

8、s rathern specifying a child of this classfor the form-bean.Not assoting an ActionForm-descended class win action canalso lead to this error.異常javax.servlet.jsp.JspException: Cannot find ActionMap ActionFormBeans collections or可能原因不是標識 StrutsactionServlet 的標記就是.do 擴展名的標記或者兩者都沒有在 web.xml 中。在 struts-c

9、onfig.xml 中的打字或者拼寫錯誤也可導致這個異常的發(fā)生。例如缺少一個標記的關閉符號/。最好使用 strutsconsole 工具檢查一下。另外,load-on-startup 必須在 web.xml 中,這要么是一個空標記,要么指定一個數值,這個數值用來表 servlet 運行的優(yōu)先級,數值越大優(yōu)先級越低。還有一個和使用 load-on-startup 有關的是使用 Struts 預編譯 JSP 文件時也可能導致這個異常。異常java.lang.NullPoerException at.apache.struts.util.RequestUtils.forwardURL(Request

10、Utils.java:1223)可能原因在 struts-config.xml 中的 forward 元素缺少 path 屬性。例如應該是如下形式:異常javax.servlet.jsp.JspException: Cannot find bean.apache.struts.taglib.html.BEAN in any scopeProbable Causes試圖在 Struts 的 form 標記外使用 form 的子元素。這常常發(fā)生在你在后面使用Struts 的 html 標記。另外要注意可能你不經意使用的無主體的標記,如,這樣 web服務器時就當作一個無主體的標記,隨后使用的所有標記

11、都被認為是在這個標記之外的,如又使用了還有就是在使用 taglib 引入 HTML 標記庫時,你使用的 prefix的值不是 html。異常javax.servlet.jsp.JspException: Missing message for keyProbable Causes這個 key 的值對沒有在資源文件 ApplicationRperties 中定義。如果你使用 eclipse 時經常碰到這樣的情況,當項目重新編譯時,eclipse 會自動將classes 目錄下的資源文件刪除。資源文件 ApplicationRperties 不在 classpa

12、th 中應將資源文件放到WEB-INF/classes 目錄下,當然要在 struts-config.xml 中定義)異常Cannot find message resourunder key.apache.strution.MESSAGE可能原因很顯然,這個錯誤是發(fā)生在使用資源文件時,而Struts 沒有找到資源文件。Implicitly trying to use message resourt are not available(such as using empty html:options tag instead of specifyingtheoptions in its body

13、 - this ames options are specified inApplicationRperties file)XML parser iverses - too many, too few,patible異常Strange and seemingly random characters in HTML and on screen, but not in original JSP or servlet.可能原因混和使用 Struts 的 html:form 標記和標準的 HTML 標記不正確。使用的編碼樣式在本頁中不支持。異常contained no data in

14、 NetscNo data rendered (compley empty) pageicrosoftExplorerernet可能原因使用一個 Action 的派生類而沒有實現 perform()方法或 execute()方法。在 Struts1.0 中實現的是 perform()方法,在 Struts1.1 中實現的是 execute()方法,但 Struts1.1 向后兼容 perform()方法。但你使用 Struts1.1 創(chuàng)建一個 Action 的派生類,并且實現了 execute()方法,而你在 Struts1.0 中運行的話,就會得到contained nodata error

15、 message in Netsc or a comple y empty(no HTML whatsoever) page renderedExplorer.”的錯誤信息。icrosofternet異常ServletException: BeanUtils.populate解決方案在用Struts 上傳文件時,遇到了 javax.servlet.ServletException: BeanUtils.populate 異常。ActionServlet 并沒有用到 BeanUtils 這些工具類。后來仔細檢查代碼發(fā)現是在 jsp 文件里的 form 忘了加 enctype=multipart/

16、form-data了。所以寫程序遇到錯誤或異常應該從多方面考慮問題存在的可能性,想到系統(tǒng)提示信息以外的東西。1. 定義 Action 后, 如果指定了 name, 那么必須要定義一個與它同名的FormBean 才能進行form.2.如果定義Action 后, 提交頁面時出現 No inputribute for mappath. 錯誤,則需要在其 input 屬性中定義轉向的頁面.3. 如果update row count新的數據時出現 Batchwrong:. 錯誤, 則說明.hbm.xml 中指定的 key 的類型為原始類型(,long),因為這種類型會自動分配值, 而這個值往往會讓系統(tǒng)認

17、為已經存在該記錄,正確的方法是使用 java.lang.eger 或 java.lang.Long 對象.4. 如果出現 argumenttype mismatch 錯誤, 可能是你使用了Date 等特殊對象,數據時因為 struts 不能自動從 String 型轉換成 Date 型,所以, 你需要在 Action 中手動把 String 型轉換成 Date 型.5.Hibernate 中, Query 的 iterator()比 list()方法快很多.6.如果出現 equal symbol或者變量, 例如:expected 錯誤, 說明你的 strtus中包含另一個html:select

18、property=test onchange=/或者html:hidden property=test value=/這樣的情況.錯誤:Exceptionhread main.hibernate.exception.SQLGrammarException: Could not execute JDBCbatch update 原因與解決:因為 Hibernate Tools(或者 Eclipse 本身的DatabaseExplorer)生成*.hbn.xml 工具中包含有 catalog=*(*表示數據庫名稱)這樣的屬性,將該屬性刪除就可以了錯誤:.hibernate.ObjectDelete

19、dException: deleted object would bere-saved by cascade (remove deleted object from asso原因與解決:tions)方法 1方法 2方法 3刪除Set 方的 cascade解決關聯(lián)關系后,再刪除在 many-to-one 方增加cascade 但值不能是 none最后一招:檢查一下 hashCodeequals 是否使用了 id 作為唯一標示的選項了;我用uuid.hex 時是沒有問題的;但是用了 native,就,怎么辦?刪除?。栴}:今天用 Tomcat 5.5.12,發(fā)現原來很好用的系統(tǒng)不能用了,反復測試發(fā)

20、現頁面中不能包含taglib,否則會出現以下提示:HTTP Sus 500 -type Exception reportMessagedescription The server encountered anprevented it from fulfilling thisernal error ()trequest.exception.apache.jasper.JasperException: /index.jsp(1,1)Unable to read TLD META-INF/tlds/struts-bean.tld from JAR filefile:*/WEB-INF/lib/str

21、uts.jar:原因:更新了工程用的lib 文件夾下的jar,發(fā)布時也發(fā)布了 servlet.jar 和 jsp-api.jar。解決:把 jsp-api.jar 刪除就解決這個問題了。錯誤: java.lang.NullPoerException實例、 manage原因: 發(fā)現實例等需要注入的東西沒有被注入(俗稱空指針異常)解決:這個時候,你應該查看日志文件;默認是應用服務器的 log 文件,比如 Tomcat就是 Tomcat 安裝目錄 /logs;你會發(fā)現提示你:可能是:.springframework.beans.factory.BeanCreationException:Error

22、creating bean with name sf defined in ServletContextresource /WEB-INF/applicationContext.xml: Initialization of bean failed;nested exception isconfigure from URL:.hibernate.HibernateException: could notfile:src/hibernate.cfg.xml.hibernate.HibernateException: couldnot configure from URL: file:src/hib

23、ernate.cfg.xmlCausedby: java.io.FileNotFoundException:srchibernate.cfg.xml可能是:.springframework.beans.factory.BeanCreationException:Error creating bean with name sesFactory definedinServletContext resource /WEB-INF/applicationContext.xml:Initialization of bean failed; nested exceptionis.hibernate.MapException: Resource:/UserRole.hbm.xml notcom/mcc/coupon/mfound.hibernate.MapException: Resource:com/mcc/coupon/m/UserRole.hbm.xml notfound 然后你就知道原因是因為配置文件的出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論