Java常见问题及处理.docx
《Java常见问题及处理.docx》由会员分享,可在线阅读,更多相关《Java常见问题及处理.docx(13页珍藏版)》请在冰豆网上搜索。
![Java常见问题及处理.docx](https://file1.bdocx.com/fileroot1/2022-11/28/c3e5a6c3-e0ee-4543-ab15-38a48c9e5a61/c3e5a6c3-e0ee-4543-ab15-38a48c9e5a611.gif)
Java常见问题及处理
常见的JAVA错误以及处理方法
2007-12-1015:
43
该错误集合中有些是我自己总结的,有些是从网络上搜索到的别人的一些错误处理集合,都放在一起来了
0、需要标识符
a)不在函数内
1、非法表达式开始
b)可能:
丢失括号.
2.nodatafound
a)可能:
setInt(1,100)中,没有100这个值
3.找不到符号
a)可能:
没导入包
4.指定了无效URL
a)可能:
数据库名或IP错误,即连接出错
5.类路径没有找到
a)可能:
ClassNotFoundException:
oracle.jdbc.driver.OracleDriver
b)原因:
一般是指包名写错,或者没有import包,或者没有在类路径中找到jar文件
c)解决:
没有加载Oracle驱动jar,在.bash_profile中把ojdbc14.jar加进来
6.空指针异常
a)可能:
数据源错误比如数据库名或IP错误
7.不能执行查询
a)可能:
数据库中表的问题,比如列名不存在
8.invalididentity
a)可能:
列名出错
9.若在数据库中创建了两个sequence,运行时出现异常可能是先后执行了多次select语句,导致与原有的序列号产生冲突
10.表名或列名不存在
a)可能:
表不存在或者没有插入数据到表中
11.不支持的类,类的版本错误
a)可能:
没有导入jdk5.0,或者编译器仍为1.4
12.MappingNotFoundException
a)Maybe:
IntheEclipseNotrefersh,ornotexistinthedirctory
13.HibernateException:
/hibernate.cfg.xmlnotfound
a)Maybe1:
hibernate.cfg.xmlnotintherootdirectory
b)Maybe2:
Couldnotparseconfiguration.
c)resolve:
databasenotconnectoruseanotherdatabase
14.ConstraintViolationException
a)Maybe:
usedanottruedatabase
15.驱动没有找到或者JDBCDrivernotfound
可能:
连接数据库的驱动jar包不存在或者版本不一致,比如将旧的版本换成新的会造成该类错误
16.空指针异常,java.lang.NullPointerException
a)可能1:
数据库连接出错,比如在hibernate.cfg.xml中的数据错误会导致异常。
17.数据插入异常,GenericJDBCException:
couldnotinsert
a)可能1:
没有建立表或者表中没有任何数据
b)可能2:
插入数据后没有执行提交语句:
commit
18.LazyInitializationException或者延迟加载异常
a)可能1:
没有在查询语句中加fetch
19.IdentifierGenerationException
a)可能1:
高位表没有初始化(比如hi_value中没有记录)
20.couldnotinitializeacollection:
[hibernate.entity.Role.modules#32768]Syntaxerror:
Encountered"-"atline1,column132.
a)错误原因:
红色字部分中“-”为非法字符,替换为module_role
21.couldnotinsertcollectionrows:
[hibernate.entity.Module.roles#1]
在Module.hbm.xml文件的如下配置中加入inverse=”true”
22.在部署Struts时,出现如下错误信息:
HTTPStatus404-Servletactionisnotavailable
typeStatusreport
messageServletactionisnotavailable
descriptionTherequestedresource(Servletactionisnotavailable)isnotavailable.
问题原因:
1.、web.xml文件中未配置ActionServlet。
2、struts-config.xml文件未配置你要访问的Action。
3、你的jsp文件form标记中action属性的路径名称错误。
4、非以上三种情况。
针对以上4种情况相应的解决方案如下:
1、在web.xml文件中加上ActionServlet的配置信息
?
?
?
?
?
?
/WEB-INF/struts-config.xml?
?
2、在struts-config.xml文件检查你要访问的Action配置文件。
3、检查jsp文件form标记中action属性的路径名称是否与struts-config.xml文件中action标记的path属性的路径名称一致。
4、非以上情况的解决办法就是检查web容器的log日志,如果时tomcat则检查下logs目录下的localhost_log文件,看里边是否记录有错误信息,然后根据错误信息提示将其纠正。
23.java.lang.NoClassDefFoundError:
org/apache/commons/beanutils/Converter
缺少spring-framework-2.0.3\lib\jakarta-commons\commons-beanutils.jar
24.
ava代码Causedby:
java.lang.NoClassDefFoundError:
org/objectweb/asm/Type
缺少spring-framework-2.0.3\lib\asm\asm-2.2.2.jar包,版本不同,该包的名字有相应的区别
java代码Causedby:
java.lang.NoClassDefFoundError:
org/dom4j/DocumentException
缺少spring-framework-2.0.3\lib\dom4j\dom4j-1.6.1.jar包,版本不同,该包的名字有相应的区别
把这个包进去就可以了:
\Spring206\lib\dom4j、dom4j-1.6.1.jar
java代码Causedby:
java.lang.NoClassDefFoundError:
org/apache/commons/collections/SequencedHashMap
缺少spring-framework-2.0.3\lib\jakarta-commons\commons-collections.jar包,版本不同,该包的名字有相应的区别
java代码Causedby:
java.lang.NoClassDefFoundError:
net/sf/cglib/proxy/CallbackFilter
缺少spring-framework-2.0.3\lib\cglib\cglib-nodep-2.1_3.jar包,版本不同,该包的名字有相应的区别
java代码Causedby:
java.lang.NoClassDefFoundError:
org/objectweb/asm/CodeVisitor
缺少hibernate-3.2\lib\asm.jar包,版本不同,该包的名字有相应的区别
java代码
org.hibernate.exception.SQLGrammarException:
couldnotloadanentity:
[www.proudsoul.xml.User#1]
JAVA工程与WEB工程包的区别:
一个是asm.jar,一个是jta.jar
java代码Causedby:
java.lang.NoClassDefFoundError:
javax/transaction/TransactionManager
缺少spring-framework-2.0.3\lib\j2ee\jta.jar包,版本不同,该包的名字有相应的区别此种错误请检查相应的***.hbm.xml配置文件的配置
25,
Exceptioninthread"main"org.springframework.dao.InvalidDataAccessResourceUsageException:
couldnotgetnextsequencevalue;nestedexceptionisorg.hibernate.exception.SQLGrammarException:
couldnotgetnextsequencevalue
Causedby:
org.hibernate.exception.SQLGrammarException:
couldnotgetnextsequencevalue
原因:
没有加Sequence或者数据库的方言写错了
26,
我的配置文件
然后我运行保存一条数据进去
Thedatabasereturnednonativelygeneratedidentityvalue
就会报这个错误
因为你native是根据看底层数据库的能力选择identity,sequence或者hilo中的一个
而我建表的时候id没有指定
altertable`student`change`id``id`intauto_increment
我们把我们的表的结构小小的改动一下就没问题了
27,
UpdateManager无法启动2007-08-0915:
21如果在应用程序安装过程中,暴力中断安装程序,会出现如下状况:
1.apt-getremove和dpkg--remove无法删除软件2.UpdateManager无法启动3.新立得软件包管理程序无法启动
以上可能是deb损坏之类造成的
sudodpkg-rsqldveloper
正在读取软件包列表...完成
正在分析软件包的依赖关系树...完成
E:
软件包sqldeveloper需要重新安装,但是我无法找到相应的安装文件。
解决方法:
1.从/var/lib/dpkg/status中把对应的段删掉
重要:
修改之前请先备份
在status中找到你对应的包删除就OK了...
28,
Exceptioninthread"main"java.lang.NoClassDefFoundError:
antlr/ANTLRException
少了antlr-2.7.5H3.jar包,从D:
\eclipse\eclipse\plugins\com.genuitec.org.hibernate.eclipse_4.1.1\myeclipse-data\3.0\lib
29,
Causedby:
java.lang.NoClassDefFoundError:
javax/transaction/Synchronization
缺少Spring206\lib\j2ee\jta.jar
30,
Causedby:
java.lang.IllegalArgumentException:
Cannotconvertvalueoftype[$Proxy3]torequiredtype[business.impl.PriceBiz]forproperty'priceBiz':
nomatchingeditorsorconversionstrategyfound
在java类中设置priceBiz时应该设置的是接口PriceBizIf,而非实现类
18,数组越界
可能1:
在命令行后面需要加入参数.
可能2:
加入的参数错误
19,carisnotmapped
可能1:
在cfg.xml中没有增加映射的hbm.xml文件在中
20,属性没有找到
可能1:
hbm.xml文件中的有问题,也许是name的值与对应类中的成员名不一致
21,SQLException:
无当前连接 可能1:
在比如创建帐户时没有对相应的方法添加到中去,比如这个没有加入:
newAccount
transfer
22,SQLException:
Syntaxerror:
Encountered"table"atline1,column8.
可能1;执行SQL时出现冲突,可能是SQL语句中使用了关键字作为变量来用,比如
updateordersetbalance=1000000;
其中order被用作表名来使用,这是错误的,因为order是个关键字,用在orderby中
23,Servlet/Spring-WebMvcthrewload()exception
org.xml.sax.SAXParseException:
Documentrootelement"beans",mustmatchDOCTYPEroot"null".
jar包的冲突,spring-1.2.6.jar和spring.jar出现在一个war的目录中:
JBoss/server/all/deploy/Spring-WebMvc.war/WEB-INF/lib
24,java.sql.SQLException:
当事务仍处于活动状态时,无法关闭连接。
25,
validateJarFile(/home/soft01/Tomcat/webapps/sms-token-struts/WEB-INF/lib/servlet-api.jar)
Servlet/sms-struts-tilesthrewload()exception
java.lang.ClassNotFoundException:
org.apache.struts.action.ActionServlet
原因:
在WEB-INF/lib/目录下有servlet-api.jar与/Tomcat/common/lib目录下的servlet-api.jar冲突了,把WEB-INF/lib/下的servlet-api.jar删除就可以了
26,java.lang.ClassNotFoundException:
org.springframework.web.struts.ContextLoaderPlugIn
Markingservletactionasunavailable
10:
30:
47,088ERROR[/NetCT_OSS]:
3953-Servlet/NetCT_OSSthrewload()exception
javax.servlet.UnavailableException
27,org.xml.sax.SAXParseException:
Documentrootelement"beans",mustmatchDOCTYPEroot"null".
缺少MyEclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.5.0/data/2.0/dist/modules/spring-struts.jar
28,Causedby:
java.sql.BatchUpdateException:
ORA-02291:
integrityconstraint(SD0702.FK82D343CF49A4B831)violated-parentkeynotfound
Causedby:
org.hibernate.exception.ConstraintViolationException:
CouldnotexecuteJDBCbatchupdate
有可能是ID生成策略的问题,我将它XML映射文件改成就好了
29,
2007-08-1916:
21:
43,290ERROR[org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/OSS].[action]]-Servlet.service()forservletactionthrewexception
org.hibernate.NonUniqueObjectException:
adifferentobjectwiththesameidentifiervaluewasalreadyassociatedwiththesession:
[entity.Module#2]
java.util.ConcurrentModificationException
原因:
已经有对象拥有了所选择的module,用clear(),而不是remove();
30,
ERROR[org.apache.catalina.session.ManagerBase]-IOExceptionwhileloadingpersistedsessions:
java.io.InvalidClassException:
entity.Module;localclassincompatible:
streamclassdescserialVersionUID=-5988350031935445758,localclassserialVersionUID=-297934247726484429
java.io.InvalidClassException:
entity.Module;localclassincompatible:
streamclassdescserialVersionUID=-5988350031935445758,localclassserialVersionUID=-297934247726484429
在Module中加上一个关键字:
transient
31,
Causedby:
java.sql.BatchUpdateException:
ORA-02292:
integrityconstraint(SD0702.SYS_C00132664)violated-childrecordfound
原因:
有其他的表引用了该表的外建,所以报这个异常,如果没有引用就不会出现
32,
出现数组越界的时候,看看是不是循环时没有加=,比如:
for(inti=1;ifor(inti=1;i<=arr.length;i++)
1.如果使用Ant和Junit是被报找不到test,检查一下是否误用了private
出错信息:
junit.framework.AssertionFailedError:
Notestsfoundintest.AllTest
该错误有个很特别的特点,当你不通过ant来运行测试,而是通过AllTest类来运行的话,可以正常运行。
小心哦
2.如果遇到报:
表名无效,且jvm报严重错误,看看是不是用了数据库的保留关键字来做表名了,如User。
3.使用ant时必须小心ant的classpath它用的不是IDE的classpath,小心!
4.小心下边的异常,
exceptionsettingpropertyvaluewithCGLIB(sethibernate.cglib.use_reflection_optimizer=falseformoreinfo)setterofxp.bean.Users.?
"type="net.sf.hibernate.PropertyAccessException">java.lang.ClassCastExceptionatxp.bean.UsersMetaClass1.setPropertyValues()atnet.sf.hibernate.persister.AbstractEntityPersister.setPropertyValues
上次出现该错错误的原因是:
源文件里我的class类型为一个类Contactcontact
而跑到mapping里却成了Set,呵呵厉害。
5.突然间冒出大量的NullPointException
重新build一下看看先。
6.="Flushduringcascadeisdangerous-thismightoccurifanobjectwasdeletedandthenre-savedbycascade"
7.Tapestry的出错信息:
Classcom.bookshop.HellodoesnotimplementtheIPageinterface.
location:
context:
/WEB-INF/Home.page,line6
原因:
与显示有关的哪个java类没有从IPage家族继承。
8.使用ant时给出的路径好象不允许出现空格。
9.由于使用ant时用junit做测试的话,classpath中出现j2ee.jar的话,问