-----------------------------------------------------------------------------------------------------------------
異常
java.lang.NullPointerException at org.apache.struts.util.RequestUtils.forwardURL(RequestUtils.java:1223)
可能原因
在struts-config.xml中的forward元素缺少path屬性。例如應(yīng)該是如下形式:
-----------------------------------------------------------------------------------------------------------------
異常
javax.servlet.jsp.JspException: Cannot find bean org.apache.struts.taglib.html.BEAN in any scope
Probable Causes
試圖在Struts的form標(biāo)記外使用form的子元素。這常常發(fā)生在你在后面使用Struts的html標(biāo)記。另外要注意可能你不經(jīng)意使用的無(wú)主體的標(biāo)記,如,這樣web 服務(wù)器解析時(shí)就當(dāng)作一個(gè)無(wú)主體的標(biāo)記,隨后使用的所有標(biāo)記都被認(rèn)為是在這個(gè)標(biāo)記之外的,如又使用了還有就是在使用taglib引入HTML標(biāo)記庫(kù)時(shí),你使用的prefix的值不是html。
-----------------------------------------------------------------------------------------------------------------
異常
javax.servlet.jsp.JspException: Missing message for key xx.xx.xx
Probable Causes
這個(gè)key的值對(duì)沒(méi)有在資源文件ApplicationResources.properties中定義。如果你使用eclipse時(shí)經(jīng)常碰到這樣的情況,當(dāng)項(xiàng)目重新編譯時(shí),eclipse會(huì)自動(dòng)將classes目錄下的資源文件刪除。
資源文件ApplicationResources.properties 不在classpath中應(yīng)將資源文件放到 WEB-INF/classes 目錄下,當(dāng)然要在struts-config.xml中定義)
異常
Cannot find message resources under key org.apache.struts.action.MESSAGE
可能原因
很顯然,這個(gè)錯(cuò)誤是發(fā)生在使用資源文件時(shí),而Struts沒(méi)有找到資源文件。
Implicitly trying to use message resources that are not available (such as using empty html:options tag instead of specifyingthe options in its body -- this assumes options are specified in ApplicationResources.properties file)
XML parser issues -- too many, too few, incorrect/incompatible versions
-----------------------------------------------------------------------------------------------------------------
異常
Strange and seemingly random characters in HTML and on screen, but not in original JSP or servlet.
可能原因
混和使用Struts的html:form標(biāo)記和標(biāo)準(zhǔn)的HTML標(biāo)記不正確。
使用的編碼樣式在本頁(yè)中不支持。
-----------------------------------------------------------------------------------------------------------------
異常
"Document contained no data" in Netscape
No data rendered (completely empty) page in Microsoft Internet Explorer
可能原因
使用一個(gè)Action的派生類而沒(méi)有實(shí)現(xiàn)perform()方法或execute()方法。在Struts1.0中實(shí)現(xiàn)的是perform() 方法,在 Struts1.1中實(shí)現(xiàn)的是execute()方法,但Struts1.1向后兼容perform()方法。但你使用Struts1.1創(chuàng)建一個(gè) Action的派生類,并且實(shí)現(xiàn)了execute()方法,而你在Struts1.0中運(yùn)行的話,就會(huì)得到"Document contained nodata" error message in Netscape or a completely empty (no HTML whatsoever) page rendered in Microsoft Internet Explorer.”的錯(cuò)誤信息。
---------------------------------------------------------------------------------------------------------------------------
異常
ServletException: BeanUtils.populate
解決方案
在用Struts上傳文件時(shí),遇到了javax.servlet.ServletException: BeanUtils.populate異常。
我的ActionServlet并沒(méi)有用到BeanUtils這些工具類。后來(lái)仔細(xì)檢查代碼發(fā)現(xiàn)是在jsp文件里的form忘了加 enctype=& amp;quot;multipart/form-data" 了。所以寫程序遇到錯(cuò)誤或異常應(yīng)該從多方面考慮問(wèn)題存在的可能性,想到系統(tǒng)提示信息以外的東西。
------------------------------------------------------------------
1. 定義Action后, 如果指定了name, 那么必須要定義一個(gè)與它同名的FormBean才能進(jìn)行form映射.2. 如果定義Action后, 提交頁(yè)面時(shí)出現(xiàn) "No input attribute for mapping path..." 錯(cuò)誤, 則需要在其input屬性中定義轉(zhuǎn)向的頁(yè)面.3. 如果插入新的數(shù)據(jù)時(shí)出現(xiàn) "Batch update row count wrong:..." 錯(cuò)誤, 則說(shuō)明XXX.hbm.xml中指定的key的類型為原始類型(int, long),因?yàn)檫@種類型會(huì)自動(dòng)分配值, 而這個(gè)值往往會(huì)讓系統(tǒng)認(rèn)為已經(jīng)存在該記錄, 正確的方法是使用java.lang.Integer或java.lang.Long對(duì)象.4. 如果插入數(shù)據(jù)時(shí)出現(xiàn) "argument type mismatch" 錯(cuò)誤, 可能是你使用了Date等特殊對(duì)象, 因?yàn)閟truts不能自動(dòng)從String型轉(zhuǎn)換成Date型,所以, 你需要在Action中手動(dòng)把String型轉(zhuǎn)換成Date型.5. Hibernate中, Query的iterator()比list()方法快很多.6. 如果出現(xiàn) "equal symbol expected" 錯(cuò)誤, 說(shuō)明你的strtus標(biāo)簽中包含另一個(gè)標(biāo)簽或者變量, 例如:
或者
"/>
這樣的情況...
---------------------------------------------------------------------------------------------------------------------------
錯(cuò)誤:Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update原因與解決: 因?yàn)镠ibernate Tools(或者Eclipse本身的Database Explorer)生成*.hbn.xml工具中包含有catalog="***"(*表示數(shù)據(jù)庫(kù)名稱)這樣的屬性,將該屬性刪除就可以了
---------------------------------------------------------------------------------------------------------------------------
錯(cuò)誤:org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations)
原因與解決:
方法1 刪除Set方的cascade
方法2 解決關(guān)聯(lián)關(guān)系后,再刪除
方法3 在many-to-one方增加cascade 但值不能是none
最后一招:
檢查一下hashCode equals是否使用了id作為唯一標(biāo)示的選項(xiàng)了;我用uuid.hex時(shí)是沒(méi)有問(wèn)題的;但是用了native,就不行了,怎么辦?刪除啊!
------------------------------------------------------------------
問(wèn)題:今天用Tomcat 5.5.12,發(fā)現(xiàn)原來(lái)很好用的系統(tǒng)不能用了,反復(fù)測(cè)試發(fā)現(xiàn)頁(yè)面中不能包含 taglib,否則會(huì)出現(xiàn)以下提示:HTTP Status 500 -type Exception reportMessage description The server encountered an internal error () that prevented it from fulfilling this request.exceptionorg.apache.jasper.JasperException: /index.jsp(1,1) Unable to read TLD "META-INF/tlds/struts-bean.tld" from JAR file"file:*****/WEB-INF/lib/struts.jar":原因:更新了工程用的lib文件夾下的jar,發(fā)布時(shí)也發(fā)布了 servlet.jar和jsp-api.jar。解決:把jsp-api.jar刪除就解決這個(gè)問(wèn)題了。 -------------------------------------------------------------------
錯(cuò)誤: java.lang.NullPointerException
原因: 發(fā)現(xiàn) dao 實(shí)例、 manage 實(shí)例等需要注入的東西沒(méi)有被注入(俗稱空指針異常)解決:這個(gè)時(shí)候,你應(yīng)該查看日志文件;默認(rèn)是應(yīng)用服務(wù)器的 log 文件,比如 Tomcat 就是 [Tomcat 安裝目錄 ]/logs ;你會(huì)發(fā)現(xiàn)提示你:可能是:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sf' defined in ServletContextresource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception isorg.hibernate.HibernateException: could not configure from URL: file:src/hibernate.cfg.xmlorg.hibernate.HibernateException: could not configure from URL: file:src/hibernate.cfg.xml……………………….Caused by: java.io.FileNotFoundException: src\hibernate.cfg.xml可能是:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined inServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception isorg.hibernate.MappingException: Resource: com/mcc/coupon/model/UserRole.hbm.xml not foundorg.hibernate.MappingException: Resource: com/mcc/coupon/model/UserRole.hbm.xml not found然后你就知道原因是因?yàn)榕渲梦募慕馕龀隽隋e(cuò)誤,這個(gè)通過(guò) Web 頁(yè)面是看不出來(lái)的。更多的是持久化影射文件出的錯(cuò)誤;導(dǎo)致了沒(méi)有被解析;當(dāng)然你需要的功能就無(wú)法使用了。
------------------------------------------------------------------
錯(cuò)誤:StandardWrapperValve[action]: Servlet.service() for servlet action threw exception
javax.servlet.jsp.JspException: Cannot retrieve mapping for action /settlementTypeManage
或者: type Status report message Servlet action is not available description The requested resource (Servlet action is not available) is not available.
原因: 同 上
------------------------------------------------------------------
錯(cuò)誤StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exceptionjava.lang.ClassNotFoundException: org.apache.struts.taglib.bean.CookieTei界面錯(cuò)誤具體描述:
org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: org.apache.struts.taglib.bean.CookieTei
原因與解決:
<方案一>你的“html:”開(kāi)頭的標(biāo)簽沒(méi)有放在一個(gè)中
<方案二>重新啟動(dòng)你的應(yīng)用服務(wù)器,自動(dòng)就沒(méi)有這個(gè)問(wèn)題
相關(guān)推薦:計(jì)算機(jī)等考二級(jí)JAVA:Java序列化的簡(jiǎn)單例子北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |