筆記:
- java.lang.NullPointerException(空指針異常)
這個異常大家肯定都經常遇到,異常的解釋是"程序遇上了空指針"蕊肥,簡單地說就是調用了未經初始化的對象或者是不存在的對象叶摄,這個錯誤經常出現(xiàn)在創(chuàng)建圖片,調用數(shù)組這些操作中,比如圖片未經初始化赫蛇,或者圖片創(chuàng)建時的路徑錯誤等等召廷。對數(shù)組操作中出現(xiàn)空指針凳厢,很多情況下是一些剛開始學習編程的朋友常犯的錯誤,即把數(shù)組的初始化和數(shù)組元素的初始化混淆起來了竞慢。數(shù)組的初始化是對數(shù)組分配需要的空間先紫,而初始化后的數(shù)組,其中的元素并沒有實例化筹煮,依然是空的遮精,所以還需要對每個元素都進行初始化(如果要調用的話)
- java.lang.ClassNotFoundException
這個異常是很多原本在JB等開發(fā)環(huán)境中開發(fā)的程序員,把JB下的程序包放在WTk下編譯經常出現(xiàn)的問題败潦,異常的解釋是"指定的類不存在"本冲,這里主要考慮一下類的名稱和路徑是否正確即可,如果是在JB下做的程序包劫扒,一般都是默認加上Package的檬洞,所以轉到WTK下后要注意把Package的路徑加上。
- java.lang.ArithmeticException(數(shù)學運算異常)
這個異常的解釋是"數(shù)學運算異常"沟饥,比如程序中出現(xiàn)了除以零這樣的運算就會出這樣的異常添怔,對這種異常,大家就要好好檢查一下自己程序中涉及到數(shù)學運算的地方贤旷,公式是不是有不妥了澎灸。
- java.lang.ArrayIndexOutOfBoundsException(數(shù)組越界異常)
這個異常相信很多朋友也經常遇到過,異常的解釋是"數(shù)組下標越界"遮晚,現(xiàn)在程序中大多都有對數(shù)組的操作性昭,因此在調用數(shù)組的時候一定要認真檢查,看自己調用的下標是不是超出了數(shù)組的范圍县遣,一般來說糜颠,顯示(即直接用常數(shù)當下標)調用不太容易出這樣的錯,但隱式(即用變量表示下標)調用就經常出錯了萧求,還有一種情況其兴,是程序中定義的數(shù)組的長度是通過某些特定方法決定的,不是事先聲明的夸政,這個時候元旬,最好先查看一下數(shù)組的length,以免出現(xiàn)這個異常。
- java.lang.IllegalArgumentException(方法的參數(shù)錯誤)
這個異常的解釋是"方法的參數(shù)錯誤"匀归,很多J2ME的類庫中的方法在一些情況下都會引發(fā)這樣的錯誤坑资,比如音量調節(jié)方法中的音量參數(shù)如果寫成負數(shù)就會出現(xiàn)這個異常,再比如g.setColor(int red,int green,int blue)這個方法中的三個值穆端,如果有超過255的也會出現(xiàn)這個異常袱贮,因此一旦發(fā)現(xiàn)這個異常,我們要做的体啰,就是趕緊去檢查一下方法調用中的參數(shù)傳遞是不是出現(xiàn)了錯誤攒巍。
- java.lang.IllegalAccessException(沒有訪問權限)
這個異常的解釋是"沒有訪問權限",當應用程序要調用一個類荒勇,但當前的方法即沒有對該類的訪問權限便會出現(xiàn)這個異常柒莉。對程序中用了Package的情況下要注意這個異常。
7沽翔, SQLException(操作數(shù)據(jù)庫異常類)
現(xiàn)在的Java應用程序大部分都是依賴于數(shù)據(jù)庫運行的兢孝。當Java應用程序與數(shù)據(jù)庫進行溝通時如果產生了錯誤,就會觸發(fā)這個類搀擂。同時會將數(shù)據(jù)庫的錯誤信息通過這個類顯示給用戶。也就是說卷玉,這個操作數(shù)據(jù)庫異常類是數(shù)據(jù)庫與用戶之間異常信息傳遞的橋梁哨颂。如現(xiàn)在用戶往系統(tǒng)中插入數(shù)據(jù),而在數(shù)據(jù)庫中規(guī)定某個字段必須唯一相种。當用戶插入數(shù)據(jù)的時候威恼,如果這個字段的值跟現(xiàn)有的紀錄重復了,違反了數(shù)據(jù)庫的唯一性約束寝并,此時數(shù)據(jù)庫就會跑出一個異常信息箫措。這個信息一般用戶可能看不到,因為其發(fā)生在數(shù)據(jù)庫層面的衬潦。此時這個操作數(shù)據(jù)庫異常類就會捕捉到數(shù)據(jù)庫的這個異常信息斤蔓,并將這個異常信息傳遞到前臺。如此的話镀岛,前臺用戶就可以根據(jù)這個異常信息來分析發(fā)生錯誤的原因弦牡。這就是這個操作數(shù)據(jù)庫異常類的主要用途。在Java應用程序中漂羊,所有數(shù)據(jù)庫操作發(fā)生異常時驾锰,都會觸發(fā)這一個類。所有此時Java應用程序本身的提示信息往往過于籠統(tǒng)走越,只是說與數(shù)據(jù)庫交互出現(xiàn)錯誤椭豫,沒有多大的參考價值。此時反而是數(shù)據(jù)庫的提示信息更加有使用價值
8. NumberFormatException(字符串轉換為數(shù)字類型時拋出的異常)
在數(shù)據(jù)類型轉換過程中,如果是字符型轉換為數(shù)字型過程中出現(xiàn)的問題赏酥,對于這個異常在Java程序中采用了一個獨立的異常喳整,即NumberFormatException。如現(xiàn)在講字符型的數(shù)據(jù)“123456”轉換為數(shù)值型數(shù)據(jù)時今缚,是允許的算柳。但是如果字符型數(shù)據(jù)中包含了非數(shù)字型的字符,如123#56姓言,此時轉換為數(shù)值型時就會出現(xiàn)異常瞬项。系統(tǒng)就會捕捉到這個異常,并進行處理何荚。
算術異常類:ArithmeticExecption
空指針異常類:NullPointerException
類型強制轉換異常:ClassCastException
數(shù)組負下標異常:NegativeArrayException
數(shù)組下標越界異常:ArrayIndexOutOfBoundsException
違背安全原則異常:SecturityException
文件已結束異常:EOFException
文件未找到異常:FileNotFoundException
字符串轉換為數(shù)字異常:NumberFormatException
操作數(shù)據(jù)庫異常:SQLException
輸入輸出異常:IOException
方法未找到異常:NoSuchMethodException
java.lang.AbstractMethodError
抽象方法錯誤囱淋。當應用試圖調用抽象方法時拋出。
java.lang.AssertionError
斷言錯餐塘。用來指示一個斷言失敗的情況妥衣。
java.lang.ClassCircularityError
類循環(huán)依賴錯誤。在初始化一個類時戒傻,若檢測到類之間循環(huán)依賴則拋出該異常税手。
java.lang.ClassFormatError
類格式錯誤。當Java虛擬機試圖從一個文件中讀取Java類需纳,而檢測到該文件的內容不符合類的有效格式時拋出芦倒。
java.lang.Error
錯誤。是所有錯誤的基類不翩,用于標識嚴重的程序運行問題兵扬。這些問題通常描述一些不應被應用程序捕獲的反常情況。
java.lang.ExceptionInInitializerError
初始化程序錯誤口蝠。當執(zhí)行一個類的靜態(tài)初始化程序的過程中器钟,發(fā)生了異常時拋出。靜態(tài)初始化程序是指直接包含于類中的static語句段妙蔗。
java.lang.IllegalAccessError
違法訪問錯誤傲霸。當一個應用試圖訪問、修改某個類的域(Field)或者調用其方法眉反,但是又違反域或方法的可見性聲明狞谱,則拋出該異常。
java.lang.IncompatibleClassChangeError
不兼容的類變化錯誤禁漓。當正在執(zhí)行的方法所依賴的類定義發(fā)生了不兼容的改變時跟衅,拋出該異常。一般在修改了應用中的某些類的聲明定義而沒有對整個應用重新編譯而直接運行的情況下播歼,容易引發(fā)該錯誤伶跷。
java.lang.InstantiationError
實例化錯誤掰读。當一個應用試圖通過Java的new操作符構造一個抽象類或者接口時拋出該異常.
java.lang.InternalError
內部錯誤。用于指示Java虛擬機發(fā)生了內部錯誤叭莫。
java.lang.LinkageError
鏈接錯誤蹈集。該錯誤及其所有子類指示某個類依賴于另外一些類,在該類編譯之后雇初,被依賴的類改變了其類定義而沒有重新編譯所有的類拢肆,進而引發(fā)錯誤的情況。
java.lang.NoClassDefFoundError
未找到類定義錯誤靖诗。當Java虛擬機或者類裝載器試圖實例化某個類郭怪,而找不到該類的定義時拋出該錯誤。
java.lang.NoSuchFieldError
域不存在錯誤刊橘。當應用試圖訪問或者修改某類的某個域鄙才,而該類的定義中沒有該域的定義時拋出該錯誤。
java.lang.NoSuchMethodError
方法不存在錯誤促绵。當應用試圖調用某類的某個方法攒庵,而該類的定義中沒有該方法的定義時拋出該錯誤。
java.lang.OutOfMemoryError
內存不足錯誤败晴。當可用內存不足以讓Java虛擬機分配給一個對象時拋出該錯誤浓冒。
java.lang.StackOverflowError
堆棧溢出錯誤。當一個應用遞歸調用的層次太深而導致堆棧溢出時拋出該錯誤尖坤。
java.lang.ThreadDeath
線程結束稳懒。當調用Thread類的stop方法時拋出該錯誤,用于指示線程結束糖驴。
java.lang.UnknownError
未知錯誤僚祷。用于指示Java虛擬機發(fā)生了未知嚴重錯誤的情況佛致。
java.lang.UnsatisfiedLinkError
未滿足的鏈接錯誤贮缕。當Java虛擬機未找到某個類的聲明為native方法的本機語言定義時拋出。
java.lang.UnsupportedClassVersionError
不支持的類版本錯誤俺榆。當Java虛擬機試圖從讀取某個類文件感昼,但是發(fā)現(xiàn)該文件的主、次版本號不被當前Java虛擬機支持的時候罐脊,拋出該錯誤定嗓。
java.lang.VerifyError
驗證錯誤。當驗證器檢測到某個類文件中存在內部不兼容或者安全問題時拋出該錯誤萍桌。
java.lang.VirtualMachineError
虛擬機錯誤宵溅。用于指示虛擬機被破壞或者繼續(xù)執(zhí)行操作所需的資源不足的情況。
java.lang.ArithmeticException
算術條件異常上炎。譬如:整數(shù)除零等恃逻。
java.lang.ArrayIndexOutOfBoundsException
數(shù)組索引越界異常。當對數(shù)組的索引值為負數(shù)或大于等于數(shù)組大小時拋出。
java.lang.ArrayStoreException
數(shù)組存儲異常寇损。當向數(shù)組中存放非數(shù)組聲明類型對象時拋出凸郑。
java.lang.ClassCastException
類造型異常。假設有類A和B(A不是B的父類或子類)矛市,O是A的實例芙沥,那么當強制將O構造為類B的實例時拋出該異常。該異常經常被稱為強制類型轉換異常浊吏。
java.lang.ClassNotFoundException
找不到類異常而昨。當應用試圖根據(jù)字符串形式的類名構造類,而在遍歷CLASSPAH之后找不到對應名稱的class文件時卿捎,拋出該異常配紫。
java.lang.CloneNotSupportedException
不支持克隆異常。當沒有實現(xiàn)Cloneable接口或者不支持克隆方法時,調用其clone()方法則拋出該異常午阵。
java.lang.EnumConstantNotPresentException
枚舉常量不存在異常躺孝。當應用試圖通過名稱和枚舉類型訪問一個枚舉對象,但該枚舉對象并不包含常量時底桂,拋出該異常植袍。
java.lang.Exception
根異常。用以描述應用程序希望捕獲的情況籽懦。
java.lang.IllegalAccessException
違法的訪問異常于个。當應用試圖通過反射方式創(chuàng)建某個類的實例、訪問該類屬性暮顺、調用該類方法厅篓,而當時又無法訪問類的僚楞、屬性的吃媒、方法的或構造方法的定義時拋出該異常浴讯。
java.lang.IllegalMonitorStateException
違法的監(jiān)控狀態(tài)異常元扔。當某個線程試圖等待一個自己并不擁有的對象(O)的監(jiān)控器或者通知其他線程等待該對象(O)的監(jiān)控器時端铛,拋出該異常棚贾。
java.lang.IllegalStateException
違法的狀態(tài)異常逞力。當在Java環(huán)境和應用尚未處于某個方法的合法調用狀態(tài)锅论,而調用了該方法時祈纯,拋出該異常令宿。
java.lang.IllegalThreadStateException
違法的線程狀態(tài)異常。當縣城尚未處于某個方法的合法調用狀態(tài)腕窥,而調用了該方法時粒没,拋出異常。
java.lang.IndexOutOfBoundsException
索引越界異常簇爆。當訪問某個序列的索引值小于0或大于等于序列大小時癞松,拋出該異常倾贰。
java.lang.InstantiationException
實例化異常。當試圖通過newInstance()方法創(chuàng)建某個類的實例拦惋,而該類是一個抽象類或接口時匆浙,拋出該異常。
java.lang.InterruptedException
被中止異常厕妖。當某個線程處于長時間的等待首尼、休眠或其他暫停狀態(tài),而此時其他的線程通過Thread的interrupt方法終止該線程時拋出該異常言秸。
java.lang.NegativeArraySizeException
數(shù)組大小為負值異常软能。當使用負數(shù)大小值創(chuàng)建數(shù)組時拋出該異常。
java.lang.NoSuchFieldException
屬性不存在異常举畸。當訪問某個類的不存在的屬性時拋出該異常查排。
java.lang.NoSuchMethodException
方法不存在異常。當訪問某個類的不存在的方法時拋出該異常抄沮。
java.lang.NullPointerException
空指針異常跋核。當應用試圖在要求使用對象的地方使用了null時,拋出該異常叛买。譬如:調用null對象的實例方法砂代、訪問null對象的屬性、計算null對象的長度率挣、使用throw語句拋出null等等刻伊。
java.lang.NumberFormatException
數(shù)字格式異常。當試圖將一個String轉換為指定的數(shù)字類型椒功,而該字符串確不滿足數(shù)字類型要求的格式時捶箱,拋出該異常。
java.lang.RuntimeException
運行時異常动漾。是所有Java虛擬機正常操作期間可以被拋出的異常的父類丁屎。
java.lang.SecurityException
安全異常。由安全管理器拋出谦炬,用于指示違反安全情況的異常悦屏。
java.lang.StringIndexOutOfBoundsException
字符串索引越界異常节沦。當使用索引值訪問某個字符串中的字符键思,而該索引值小于0或大于等于序列大小時,拋出該異常甫贯。
java.lang.TypeNotPresentException
類型不存在異常吼鳞。當應用試圖以某個類型名稱的字符串表達方式訪問該類型,但是根據(jù)給定的名稱又找不到該類型是拋出該異常叫搁。該異常與ClassNotFoundException的區(qū)別在于該異常是unchecked(不被檢查)異常赔桌,而ClassNotFoundException是checked(被檢查)異常供炎。
java.lang.UnsupportedOperationException
不支持的方法異常。指明請求的方法不被支持情況的異常疾党。
異常
javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login (/Login是你的action名字)
可能原因
action沒有再struts-config.xml 中定義音诫,或沒有找到匹配的action,例如在JSP文件中使用 <html:form action="Login.do".將表單提交給Login.do處理雪位,如果出現(xiàn)上述異常竭钝,請查看struts-config.xml中的定義部分,有時可能是打錯了字符或者是某些不符合規(guī)則雹洗,可以使用strutsconsole工具來檢查香罐。
異常
org.apache.jasper.JasperException: Cannot retrieve definition for form bean null
可能原因
這個異常是因為Struts根據(jù)struts-config.xml中的mapping沒有找到action期望的form bean。大部分的情況可能是因為在form-bean中設置的name屬性和action中設置的name屬性不匹配所致时肿。換句話說庇茫,action和form都應該各自有一個name屬性,并且要精確匹配螃成,包括大小寫旦签。這個錯誤當沒有name屬性和action關聯(lián)時也會發(fā)生,如果沒有在action中指定name屬性寸宏,那么就沒有name屬性和action相關聯(lián)顷霹。當然當action制作某些控制時,譬如根據(jù)參數(shù)值跳轉到相應的jsp頁面击吱,而不是處理表單數(shù)據(jù)淋淀,這是就不用name屬性,這也是action的使用方法之一覆醇。
異常
No action instance for path /xxxx could be created
可能原因
特別提示:因為有很多中情況會導致這個錯誤的發(fā)生朵纷,所以推薦大家調高你的web服務器的日志/調試級別,這樣可以從更多的信息中看到潛在的永脓、在試圖創(chuàng)建action類時發(fā)生的錯誤袍辞,這個action類你已經在struts-config.xml中設置了關聯(lián)(即添加了<action>標簽)。
在struts-config.xml中通過action標簽的class屬性指定的action類不能被找到有很多種原因常摧,例如:定位編譯后的.class文件失敗搅吁。Failure to place compiled .class file for the action in the classpath (在web開發(fā)中,class的的位置在r WEB-INF/classes落午,所以你的action class必須要在這個目錄下谎懦。例如你的action類位于WEB-INF/classes/action/Login.class,那么在struts-config.xml中設置action的屬性type時就是action.Login).
拼寫錯誤,這個也時有發(fā)生溃斋,并且不易找到界拦,特別注意第一個字母的大小寫和包的名稱。
異常
javax.servlet.jsp.JspException: No getter method for property username of bean org.apache.struts.taglib.html.BEAN
可能原因
沒有位form bean中的某個變量定義getter 方法
這個錯誤主要發(fā)生在表單提交的FormBean中梗劫,用struts標記<html:text property=”username”>時享甸,在FormBean中必須有一個getUsername()方法截碴。注意字母“U”。
異常
java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm
可能原因
這個錯誤主要發(fā)生在在classpath中找不到相應的Java .class文件蛉威。如果這個錯誤發(fā)生在web應用程序的運行時日丹,主要是因為指定的class文件不在web server的classpath中(/WEB-INF/classes 和 /WEB-INF/lib)。在上面的錯誤中蚯嫌,原因是找不到ActionForm類聚凹。
異常
javax.servlet.jsp.JspException: Exception creating bean of class org.apache.struts.action.ActionForm: {1}
可能原因
Instantiating Struts-provided ActionForm class directly instead of instantiating a class derived off ActionForm. This mightoccur implicitly if you specify that a form-bean is this Struts ActionForm class rather than specifying a child of this classfor the form-bean.
Not associating an ActionForm-descended class with an action can also lead to this error.
異常
javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection
可能原因
不是標識Struts actionServlet的<servlet>標記就是映射.do擴展名的<sevlet-mapping>標記或者兩者都沒有在web.xml中聲明。
在struts-config.xml中的打字或者拼寫錯誤也可導致這個異常的發(fā)生齐帚。例如缺少一個標記的關閉符號/>妒牙。最好使用struts console工具檢查一下。
另外对妄,load-on-startup必須在web.xml中聲明湘今,這要么是一個空標記,要么指定一個數(shù)值剪菱,這個數(shù)值用來表servlet運行的優(yōu)先級摩瞎,數(shù)值越大優(yōu)先級越低。
還有一個和使用load-on-startup有關的是使用Struts預編譯JSP文件時也可能導致這個異常孝常。
異常
java.lang.NullPointerException at org.apache.struts.util.RequestUtils.forwardURL(RequestUtils.java:1223)
可能原因
在struts-config.xml中的forward元素缺少path屬性旗们。例如應該是如下形式:
<forward name="userhome" path="/user/userhome.jsp"/>
異常
javax.servlet.jsp.JspException: Cannot find bean org.apache.struts.taglib.html.BEAN in any scope
Probable Causes
試圖在Struts的form標記外使用form的子元素。這常常發(fā)生在你在</html:form>后面使用Struts的html標記构灸。另外要注意可能你不經意使用的無主體的標記上渴,如<html:form … />,這樣web 服務器解析時就當作一個無主體的標記喜颁,隨后使用的所有<html>標記都被認為是在這個標記之外的稠氮,如又使用了<html:text property=”id”>還有就是在使用taglib引入HTML標記庫時,你使用的prefix的值不是html半开。
異常
javax.servlet.jsp.JspException: Missing message for key xx.xx.xx
Probable Causes
這個key的值對沒有在資源文件ApplicationResources.properties中定義隔披。如果你使用eclipse時經常碰到這樣的情況,當項目重新編譯時寂拆,eclipse會自動將classes目錄下的資源文件刪除奢米。
資源文件ApplicationResources.properties 不在classpath中應將資源文件放到 WEB-INF/classes 目錄下,當然要在struts-config.xml中定義)
異常
Cannot find message resources under key org.apache.struts.action.MESSAGE
可能原因
很顯然纠永,這個錯誤是發(fā)生在使用資源文件時鬓长,而Struts沒有找到資源文件。
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標記和標準的HTML標記不正確渺蒿。
使用的編碼樣式在本頁中不支持痢士。
異常
"Document contained no data" in Netscape
No data rendered (completely empty) page in Microsoft Internet Explorer
可能原因
使用一個Action的派生類而沒有實現(xiàn)perform()方法或execute()方法彪薛。在Struts1.0中實現(xiàn)的是perform()方法茂装,在Struts1.1中實現(xiàn)的是execute()方法怠蹂,但Struts1.1向后兼容perform()方法。但你使用Struts1.1創(chuàng)建一個Action的派生類少态,并且實現(xiàn)了execute()方法城侧,而你在Struts1.0中運行的話,就會得到"Document contained nodata" error message in Netscape or a completely empty (no HTML whatsoever) page rendered in Microsoft Internet Explorer.”的錯誤信息彼妻。
異常
ServletException: BeanUtils.populate
解決方案
在用Struts上傳文件時,遇到了javax.servlet.ServletException: BeanUtils.populate異常嫌佑。
我的ActionServlet并沒有用到BeanUtils這些工具類。后來仔細檢查代碼發(fā)現(xiàn)是在jsp文件里的form忘了加enctype="multipart/form-data" 了侨歉。所以寫程序遇到錯誤或異常應該從多方面考慮問題存在的可能性屋摇,想到系統(tǒng)提示信息以外的東西。
- 定義Action后, 如果指定了name, 那么必須要定義一個與它同名的FormBean才能進行form映射.2. 如果定義Action后, 提交頁面時出現(xiàn) "No input attribute for mapping path..." 錯誤, 則需要在其input屬性中定義轉向的頁面.3. 如果插入新的數(shù)據(jù)時出現(xiàn) "Batch update row count wrong:..." 錯誤, 則說明XXX.hbm.xml中指定的key的類型為原始類型(int, long),因為這種類型會自動分配值, 而這個值往往會讓系統(tǒng)認為已經存在該記錄, 正確的方法是使用java.lang.Integer或java.lang.Long對象.4. 如果插入數(shù)據(jù)時出現(xiàn) "argument type mismatch" 錯誤, 可能是你使用了Date等特殊對象, 因為struts不能自動從String型轉換成Date型,所以, 你需要在Action中手動把String型轉換成Date型.5. Hibernate中, Query的iterator()比list()方法快很多.6. 如果出現(xiàn) "equal symbol expected" 錯誤, 說明你的strtus標簽中包含另一個標簽或者變量, 例如:
<html:select property="test" onchange="<%=test%>"/>
或者
<html:hidden property="test" value="<bean:write name="t" property="p"/>"/>
這樣的情況...
錯誤:Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update原因與解決: 因為Hibernate Tools(或者Eclipse本身的Database Explorer)生成.hbn.xml工具中包含有catalog="*"(表示數(shù)據(jù)庫名稱)這樣的屬性,將該屬性刪除就可以了
錯誤:org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations)
原因與解決:
方法1 刪除Set方的cascade
方法2 解決關聯(lián)關系后幽邓,再刪除
方法3 在many-to-one方增加cascade 但值不能是none
最后一招:
檢查一下hashCode equals是否使用了id作為唯一標示的選項了炮温;我用uuid.hex時是沒有問題的;但是用了native牵舵,就不行了柒啤,怎么辦?刪除盎担巩!
問題:今天用Tomcat 5.5.12,發(fā)現(xiàn)原來很好用的系統(tǒng)不能用了没炒,反復測試發(fā)現(xiàn)頁面中不能包含 taglib涛癌,否則會出現(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ā)布時也發(fā)布了servlet.jar和jsp-api.jar送火。解決:把jsp-api.jar刪除就解決這個問題了祖很。-----------------------------------------------------------------------------------------------------------------------------
錯誤: java.lang.NullPointerException
原因: 發(fā)現(xiàn) dao 實例、 manage 實例等需要注入的東西沒有被注入(俗稱空指針異常)解決:這個時候漾脂,你應該查看日志文件假颇;默認是應用服務器的 log 文件,比如 Tomcat 就是 [Tomcat 安裝目錄 ]/logs 骨稿;你會發(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然后你就知道原因是因為配置文件的解析出了錯誤笨鸡,這個通過 Web 頁面是看不出來的。更多的是持久化影射文件出的錯誤坦冠;導致了沒有被解析形耗;當然你需要的功能就無法使用了。
錯誤: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.
原因: 同 上
錯誤StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exceptionjava.lang.ClassNotFoundException: org.apache.struts.taglib.bean.CookieTei界面錯誤具體描述:
org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: org.apache.struts.taglib.bean.CookieTei
原因與解決: <方案一>你的“html:”開頭的標簽沒有放在一個<html:form>中 <方案二>重新啟動你的應用服務器辙浑,自動就沒有這個問題