每個程序員在開發(fā)項目的過程中都會碰到或多或少的錯誤異常,我在這里會記錄一些常碰到的異常和處理方法,每碰到一個都會到這里來更新一下,希望大家也能幫我解決一下問題,小弟在此先謝過了。
java常見的錯誤異常:
1、java.lang.NullPointerException
錯誤原因:很明顯是由于空值造成的。問題出現(xiàn)于很多方面,唯有具體情況具體分析了。
解決方法:細心分析,多判斷傳的參數(shù)據(jù)是否為空;
2、java.lang.NumberFormatException
錯誤原因:由于為空或不能轉(zhuǎn)化為數(shù)值類型時引起的異常。
解決方法:轉(zhuǎn)換前判斷是否為空,能否轉(zhuǎn)成數(shù)值類型。
2、java.lang.NoClassDefFoundError
錯誤原因:通常這個異常是由于沒有找到相應(yīng)的jar包而引起的,因為有時候IDE并沒有把你的jar包引入,雖然你明明在項目里配置了這個包,但你的lib里卻是沒有的。
解決方法:將相應(yīng)的包復(fù)制到lib里去。
Struts,Hibernate,Spring中常見的異常:
1、java.io.FileNotFoundException: Could not open class path resource [user.hbm.xml]
錯誤原因:沒有找到hibernate mapping resource的映射文件,該xml文件沒有在classpath中,這里的hbm.xml文件名和路徑一定要注意大小寫,不然就會出現(xiàn)這個錯誤。還有在用JB開發(fā)時,resource里的xml文件要勾copy,這樣編譯的時候才會把xml文件copy到classpath里去。
解決方法:把對應(yīng)的xml文件copy到classpath相應(yīng)的目錄。
2、org.springframework.beans.NotWritablePropertyException: Invalid property 'userDao' of bean class
錯誤原因:是在spring-config.xml中property name的錯誤。
<property name="...."> 中name的名字是與bean的set方法相關(guān)的,而且要注意大小寫。
例:
在spring-config.xml里配置了一個bean
? <bean id="mySystemManagerFacadeTarget" class="com.site.system.domain.impl.SystemManagerImpl">
??<property name="userDao">
???<ref bean="myUserDao"/>
??</property>
??<property name="roleDao">
???<ref bean="myRoleDao"/>
??</property>
? </bean>
則SystemManagerImpl里就必須要有對應(yīng)的set方法
? private UserDao userDao;
? private RoleDao roleDao;
? /**
?? * set the value of dao
?? */
? public void setUserDao(UserDao userDao) {
??? this.userDao = userDao;
? }
? public void setRoleDao(RoleDao roleDao){
??? this.roleDao = roleDao;
? }
解決方法:細心分析整個流程,
3、CharScanner; panic: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
錯誤原因:把有hibernate3的項目部署到WebLogic里,WebLogic里已經(jīng)有一個antlr.jar的版本了,導(dǎo)致Hibernate里的antlj.jar不能找到。(網(wǎng)上獲知)
解決方法:
( 1 ) 在hibernate.properties上,或是在spring的conext xml中,加上一個
<prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop>(不推薦,原因請看我這里的Hibernate2.1升級到Hibernate3.0 )
( 2 ) 將antlr-2.7.5H3.jar這個包加入到weblogic里,注意要加在開頭。(推薦)?
4、java.lang.NoClassDefFoundError:?javax/servlet/jsp/el/ELException
錯誤原因:weblogic8.X版本里用到JSTL1.1的項目,weblogic8.X不支持JSP2.0,因為jsp2.0中已經(jīng)把ELException類包括進去了,而weblogic8.X里的是JSP1.2,JSTL1.1里也并沒有這個包。
解決方法:
( 1?) 下載jstl1.0,然后修改web.xml
??這樣一來換引起了一個附帶問題:jstl1.0中沒有fn:這個taglib,所有用到fn:的地方必須用jsp來重寫。
( 2?) 改用支持JSP2.0的服務(wù)器,tomcat5或weblogic9
posted on 2006-04-30 14:47
badboy 閱讀(1193)
評論(0) 編輯 收藏 所屬分類:
開發(fā)經(jīng)驗