`
womendu
  • 浏览: 1478433 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java 异常收集

 
阅读更多

1."org.apache.commons.collections.SequencedHashMap"'s signer information does not match signer information of other classes in the same package
这是由于struts提供的commons-beanutils.jar和 hibernate提供的commons-collections.jar冲突成的,
可以从spring提供的lib中找到这个两个jar


2.java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.IdentNode

用hql 时,忘了给表名加别名,如select p from Position,应该是select p from Position p


3.The Server didn 't send back a proper XML response
用FCKEditor时

原因:解析不了xml文件
解决方法:

情况一:web.xml的配置是否正确,具体查看《FCKEditor使用指南.pdf》,还有fckeditor自带的几个jar包
情况二:加入serializer.jar,xalan.jar
情况三:把项目下的fckeditor包删了,重新加入一遍

4.org.eclipse.swt.SWTError: No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]
SWTError:没有更多的处理[未知Mozilla的路径(MOZILLA_FIVE_HOME未设置)]

环境:linux下运行swt程序(我出现此问题是,在linux下嵌套浏览器)
原因:firefox版本不一致
解决:重装一个firefox,并设置相关变量

5.Exception in thread "main" org.eclipse.swt.SWTError: No more handles [Could not detect registered XULRunner to use]
环境:用XULRunner 在java application中嵌套浏览器
原因:没有注册XULRunner
解决:window下环境中,在程序中加入,如(第二个参数是下载解压后的存放路径):
static{
System.setProperty("org.eclipse.swt.browser.XULRunnerPath", "C:\\xulrunner");
}

6.Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3536 or swt-win32 in swt.library.path, java.library.path or the jar file
环境:用DJ Natvie Swing时,在java application中嵌套浏览器,且在windows环境下运行正常,
但在linux下却包此异常
原因:windows下与linux下使用的swt jar包不一样
解决:在windows下用swt-3.5M6-win32-win32-x86.jar,在linux下用swt-3.5.1-gtk-linux-x86.jar

7.Exception in thread "main" java.net.ProtocolException:
cannot write to a URLConnection if doOutput=false - call setDoOutput(true)

环境: 用URLConnection送某url发送数据时
原因: doOutput=false时,不能发送数据
解决: 如 urlConnection.setDoOutput(true)

8..java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at com.eagle.service.AutoUpdate.run(AutoUpdate.java:43)

环境:j2se socket编程时,服务器端报错
原因1:服务器端用BufferedReader,时,没有读到一行
解决:客户端用PrintWriter, pw.println(),不能用pw.print(),因为br.readLine()是读一行

环境:j2se socket编程时,服务器端/客户端在br.readLine()时报错
原因2:服务器端用BufferedReader,br.readLine()时,客户端/服务器已经退出,但是并未通过服务器/客户端,
即服务器端/客户端的socket还没有关闭,当用br.readLine()时就会出现这种情况
解决:在关闭客户端时要socket.close(),同时还要向服务器发送一条退出的信息,这样让服务器知道某个客户端已经关闭,它就可以终止对此客户端的线程了,反之服务器也是一样

 

9.org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of XXX.User
环境:hibernate
原因:oolean类型的值为null,boolean类型的值必须是true/false
解决:save or update时给boolean类型的值赋true/false

 

10.用占位符查询时出现空指针java.lang.NullPointerException
at org.hibernate.hql.ast.ParameterTranslationsImpl.getNamedParameterExpectedType(ParameterTranslationsImpl.java:63)
at org.hibernate.engine.query.HQLQueryPlan.buildParameterMetadata(HQLQueryPlan.java:245)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:95)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
at jbedu.com.struts.action.LoginAction.execute(LoginAction.java:72)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)

环境:hibernate
原因:HQL 不能解析
解决:
错误写法:String hql = "select m from com.eagle.oa.model.Message m where m.ids like: id";
正确写法:String hql = "select m from com.eagle.oa.model.Message m where m.ids like:id";

11.java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based!

原因:在使用hibernate的session.createQuery(.....)时设置参数的下标应该从0开始
解决:如:
return session.createQuery("from User u where u.userName = ? and password = ?")
.setParameter(0, name)
.setParameter(1, password).uniqueResult();

12.org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.wxj.entities.Group

环境:hibernate
原因:某个实例的属性一个对象,这个对象没有保存,还是暂态的对象
解决:先保存这个对象,或是在另一端加inverse = true

 

13.ORA-01461: can bind a LONG value only for insert into a LONG column
环境:oracle
原因:jar冲突
解决:换成classes12.jar包即可

14.ERROR LazyInitializationException:19 - could not initialize proxy - the owning Session was closed

环境:SSH

原因:当一个类或属性设置了lazy="true",操作对象时,session已经关闭了
解决:使用Spring的过滤器openSessionInView

 

15.org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
环境:SSH
原因:这个异常产生的主要原因是DAO采用了Spring容器的事务管理策略,如果操作方法的名称和事务策略中指定的被管理的名称不能够匹配上,spring 就会采取默认的事务管理策略(PROPAGATION_REQUIRED,read only).如果是插入和修改操作,就不被允许的,所以包这个异常
解决:修改spring配置文件中相关事务管理部分

16.com.ibatis.common.beans.ProbeException: There is no READABLE property named 'eid' in class 'com.wxj.entity.Student'
环境:ibatis
原因:在给对象做操作,设置参数时,指定的参数不是对象中有的属性,就会抛出此异常
解决:核对对象的属性

17.java.lang.OutOfMemoryError: PermGen space
环境:很多,如ssh整合时
原因:不断的更新class,造成应用重启,最终造成代码区的内存空间满了
解决:方法很多,1重启,2增加代码区的大小,3少更新class,4有时可能是log4j造成的问题,建议使用common-loggin.jar 5,优化代



以下来自CSDN的jinhuiyu:
在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息,可以用如下方法解决(根据你的实际

情况设置大小),但是这只是临时的解决方法,更重要的是改造你的CODE

   1.可以在windows 更改系统环境变量加上JAVA_OPTS=-Xms64m -Xmx512m

   2,如果用的tomcat,在windows下,可以在C:\tomcat5.5.9\bin\catalina.bat 中加上:
set JAVA_OPTS=-Xms64m -Xmx256m
位置在: rem Guess CATALINA_HOME if not defined 这行的下面加合适.

   3.如果是linux系统
Linux 在{tomcat_home}/bin/catalina.sh的前面,加 set JAVA_OPTS='-Xms64 -Xmx512'

 

18.在客户端使用dwr时,即跨域访问时,出现“拒绝访问“及“找不到某个属性”的问题(在服务器端调用时却正常)
环境:在客户端使用dwr
原因:1。可能是jar包   2。在web.xml中的配置问题
解决:1。换dwr2.0.rc1 2。在web.xml中加入:
<servlet>
<display-name>DWR Servlet</display-name>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>allowGetForSafariButMakeForgeryEasier</param-name>
<param-value>true</param-value>
</init-param>
<!-- <init-param>   
<param-name>crossDomainSessionSecurity</param-name>   
<param-value>false</param-value>   
</init-param>   -->
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>

 

19.Fault - ; nested exception is:
java.lang.RuntimeException: No compiler found in your classpath! (you may need to add 'tools.jar')

环境:axis
原因:环境变量CLASSPATH没有设置好
解决:
方法一 重设CLASSPATH

方法二 1。 将C:\Program Files\java\jdk1.5.0_06\lib 下的tools.jar拷贝到Tomcat的lib 下

2。 将axis\lib下的所有jar包都添加到classpath中,否则编译自己的应用程序时会报找不到包的错误!

 

20.java.lang.UnsupportedClassVersionError: Bad version number in .class file
环境:
原因:Tomcat运行的JDK版本与application运行的JDK版本不一致
解决:

   1.Window --> Preferences -->Java --> compiler中的compiler compliance level对应的下拉菜单中选择JDK版本.
2.Window --> Preferences -->MyEclipse --> Servers -->Tomcat --> Tomcat n.x -->JDK中的Tomcat JDK name下的下拉

菜单中选择自己电脑上安装的JDK版本(必须与步骤1中的JDK版本一致).
如果还是没有解决,因为有些MyEclipse版本自带有JDK版本,所以也要将它改过来.
3.Window --> Preferences -->Java -->Installed JRES,然后在右边选择与步骤1和2版本一致的JDK版本,如果没有,可以自

己添加.然后选中就可以了.

 

21.faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultDetail:
{http://xml.apache.org/axis/}stackTrace:No client transport named 'null' found!

环境:axis
原因:没有设置服务的地址
解决:call.setTargetEndpointAddress(new URL(http://...));

22.javascript window.onload 在IE中出现"尚未实现"

解决:使用匿名函数,如 window.onload = function(){...};

23.java.lang.IllegalArgumentException: argument type mismatch
环境:struts1.2上传文件
原因:第一种情况:<form>中没有加入 method="post" enctype="multipart/form-data"
第二咱情况:数据类型不一样

解决:第一种情况:在<form>中加入 method="post" enctype="multipart/form-data"
第二种情况:重新数据类型,如:
实体类(news)中:private byte[] updloadFile;
hbm.xml映射:<property name="uploadFile" type="binary"/>
ActionForm:private FormFile uploadFile
页面表单:<input type="file" name="uploadFile"/>
Action:user.setUploadFile(userActionForm.getUploadFile().getFileData());

 

24.Don't know how to iterate over supplied "items" in &lt;forEach&gt;

如:<c:forEach items="${types }" var="type">

其中types不是一个可迭代的对象

25.org.springframework.beans.factory.BeanDefinitionStoreException: Line 5 in XML document from

ServletContext resource [/WEB-INF/applicationContext.xml] is invalid; nested exception is

org.xml.sax.SAXParseException: Document root element "beans", must match DOCTYPE root "null".
环境:spring
原因:spring 版本与其配置文件中的schema不一致
解决:换jar包或schema,如:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

   换成:

 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" " http://www.springframework.org/dtd/spring-beans.dtd">

26.The archive: C:/Program Files/MyEclipse

6.5/eclipse/configuration/org.eclipse.osgi/bundles/290/1/.cp/lib/wsdl4j-1.5.1.jar which is referenced by the

classpath, does not exist.


环境:在myeclipse中run application或run junit时,突然弹出一个对话框,内容如题。而且项目上会有一个小红X
原因:myeclipse引用的某jar包不在classpath中
解决:按照提示的路径将jar包加进去,如果某文件夹不存在就新建一个,以.开头的文件夹不能直接新建,而
应该使用cmd来创建,加进去之后,刷新项目,项目的小红X消除之后即可运行了

27.java.net.ConnectException: Connection timed out: connect
环境:根据wsdl通过myeclipse来创建axis webservice客户端
原因:请求的地址错误
解决:在XXLocator.java文件中,找到XXHttpPort_address属性,更改它的请求地址就行了

如:
private java.lang.String xfireserviceHttpPort_address =    "http://localhost:9999/xfireserver/services/xfireservice";

28:org.codehaus.xfire.fault.XFireFault: There must be a method name element.
at org.codehaus.xfire.service.binding.WrappedBinding.readMessage

(WrappedBinding.java:32)
at org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(SoapBodyHandler.java:42)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.client.Client.onReceive(Client.java:406)
at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:139)
at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:114)
at org.codehaus.xfire.client.Client.invoke(Client.java:336)
at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
at $Proxy8.refund(Unknown Source)

环境:xfire客户端调用webservice
原因:找不到方法
解决:如,将String url = "http://XXXXXX/service.ws?wsdl"; 的"?wsdl"去了就行

29.sql server 2000数据库还原失败:(设备激活错误)


原因:路径错误
解决:根据sql server 2000弹出的警告窗口中,提示的XXX.ldf和XXX.mdf。
找到sql server 2000安装目录下的MSSQL\Data目录,新建XXX.ldf和XXX.mdf,然后改为:
如:D:\Program Files\Microsoft SQL Server\MSSQL\Data\XXX.ldf和
D:\Program Files\Microsoft SQL Server\MSSQL\Data\XXX.mdf即可
总之,还原后数据库存放的路径必须是存在的,否则就会报此错误

 

 

30.严重: Servlet.service() for servlet default threw exception
java.lang.NoSuchMethodError:

org.hibernate.event.PostInsertEvent.getSession()

Lorg/hibernate/event/EventSource;

环境:struts2 + spring2.5 + hibernate3.2 + lucene 3.0 + compass
原因:hibernate jar冲突
解决:项目中可能有hibernate的多个版本,删掉旧版本的即可

31.严重: Exception starting filter Struts2
Caught exception while loading file struts-default.xml - [unknown location]
...
Caused by: java.lang.ClassCastException: org.apache.xerces.parsers.XML11Configuration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration

环境:struts2
原因:原因有很多,并不是配置错误,而是其他原因,一种是jar冲突,还有其他的
解决方法: 一种是删除项目目录中的xerces.jar,如果是还不行,新建一个项目,重新加入所有相关的jar包也许就好了,我就是这样

32.Last packet sent to the server was 16 ms ago.

环境:mysql
原因:没有启动mysql服务
解决方法: 在服务里启动mysql

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics