我的异常01

来源:互联网 发布:大数据的应用案例 编辑:程序博客网 时间:2024/05/16 12:03

<span style="font-size:18px;color:#ff0000;">1、WARN: [DEPRECATION] Encountered positional parameter near line 1, column 59.  Positional parameter are               considered deprecated; use named parameters or JPA-style positional parameters instead.</span>

        这只是个警告,意思是说占位符的使用已经过时了,使用named parameters 或者JPA-style来替换他。所谓占位符如下所示:

session.creatQuery("SELECT c FROM Cat c WHERE c.name=?").setParameter(0,"tiger")

  这种方式在Hibernate4中已经被废弃掉了。采用如下两种办法来解决:(1)

session.creatQuery("SELECT c FROM Cat c WHERE c.name=:name").setParameter("name","tiger")
     (2)

session.creatQuery("SELECT c FROM Cat c WHERE c.name=?0").setParameter("0","tiger")

       尤其是第二种解决办法要注意的是:0是字符串类型,而不是数字类型。如果采用数字类型,你就等着瞧吧,会报:Position beyond number of declared ordinal parameters. Remember that ordinal parameters are 1-based! Position: 1错误。


2、org.xml.sax.SAXParseException: The markup in the document preceding the root element must be well-formed.

这个异常说明很清楚,就是说根元素标签不匹配。我当时犯的错是!和DOCTYPE之间有一个空格


3、com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotationExceptions, Class has two properties of the same name "li"

    我实在使用JAXB将javabean转成XML是发生这种错误,错误原因是将注解放在了属性上,而没有将注解放在getter或者setter方法上。


4、java.util.ConcurrentModificationException:

  我碰到这个异常是因为在对java.util.List对象进行Iterator迭代过程中,对List对象进行了删除元素操作(remove),这样做是违法的,要想删除应该采用Iterator对象来删除。


5、java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.qkbase.entity.PaperInfo。

   hibernate中实体类要序列化,也就是要继承Java.io.Serializable。这是因为hibernate中实体类和数据库表相对应,将实体类写入对应的数据库表,之间的传输以对象流(ObjectStream)的形式,要想以对象流的形式传输,就必须继承Serializable接口。


6、IOException while loading persisted sessions: java.io.EOFException

    tomcat启动时报这种错,是由于tomcat的运行机制所造成的。tomcat关闭时会把每个项目session的内容存放在work文件夹下的对应每个项目的文件夹中,只要会话没有实效,重新启动tomcat,tomcat会从硬盘读取这些session。当启动tomcat读取这些会话失败时,就报这种错。解决办法:删掉对应的会话文件(.ser文件)即可。

7、org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: T near line 1, column 57 
[SELECT T.status FROM org.qkbase.entity.ReadInfo T WHERE T.readInfoId.paperId=:paperId]

  从错误提示看,是说查询语句语法有问题。但我遇到这种错误真是忍让啼笑皆非,我在原模原样的敲一遍是,错误消失。,后来我一对比,应该是查询语句中有些字符使用了错误格式。要是你遇到这种错误,在检查语法没有错误的时,不妨也罢代码重敲一遍,或许可能就是某个字符的格式问题。


8、java.lang.NoSuchFieldError: deferredExpression

 发生这种异常,是因为jstl包冲突了,删除一个就可以。当你新建一个WEB项目导入javaEE5.0,会自动导入一个jstl包,如果你再外部导入这样一个包,就可能造成冲突而出现异常。




0 0
原创粉丝点击