java 異常收集

1."org.apache.commons.collections.SequencedHashMap"'ssigner information does not match signer information of otherclasses in the same package 


這是由於struts提供的commons-beanutils.jar和hibernate提供的commons-collections.jar衝突成的, 

可以從spring提供的lib中找到這個兩個jar


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

用hql時,忘了給表名加別名,如select p from Position,應該是select p from Position p


3.TheServer 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 detectregistered 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 orswt-win32 in swt.library.path, java.library.path or the jarfile
環境:用DJ Natvie Swing時,在javaapplication中嵌套瀏覽器,且在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 - callsetDoOutput(true)

環境:用URLConnection送某url發送數據時
原因: doOutput=false時,不能發送數據
解決: 如 urlConnection.setDoOutput(true)

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

環境:j2sesocket編程時,服務器端報錯
原因1:服務器端用BufferedReader,時,沒有讀到一行
解決:客戶端用PrintWriter,pw.println(),不能用pw.print(),因爲br.readLine()是讀一行

環境:j2sesocket編程時,服務器端/客戶端在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 ofXXX.User
環境:hibernate
原因:oolean類型的值爲null,boolean類型的值必須是true/false
解決:save or update時給boolean類型的值賦true/false

 

10.用佔位符查詢時出現空指針java.lang.NullPointerException
atorg.hibernate.hql.ast.ParameterTranslationsImp
l.getNamedParameterExpectedType(ParameterTranslationsImpl.java:63)
atorg.hibernate.engine.query.HQLQueryPlan.buildParameterMetadata(HQLQueryPlan.java:245)
atorg.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:95)
atorg.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:54)
atorg.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
atorg.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
atorg.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
atorg.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
atjbedu.com.struts.action.LoginAction.execute(LoginAction.java:72)
atorg.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
atorg.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
atorg.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
atorg.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
atjavax.servlet.http.HttpServlet.service(HttpServlet.java:709)
atjavax.servlet.http.HttpServlet.service(HttpServlet.java:802)
atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
atorg.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
atorg.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
atorg.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
atorg.apache.tomcat.util.net.LeaderFollowerWorkerThre
ad.runIt(LeaderFollowerWorkerThread.java:80)
atorg.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 wherem.ids like: id"; 

正確寫法:String hql = "select m from com.eagle.oa.model.Message m wherem.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 = ? andpassword = ?")
.setParameter(0, name)
.setParameter(1, password).uniqueResult();

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

環境:hibernate
原因:某個實例的屬性一個對象,這個對象沒有保存,還是暫態的對象
解決:先保存這個對象,或是在另一端加inverse = true

 

13.ORA-01461: can binda LONG value only for insert into a LONG column
環境:oracle
原因:jar衝突
解決:換成classes12.jar包即可

14.ERRORLazyInitializationException:19 - could not initialize proxy - theowning 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 intoFlushMode.COMMIT/AUTO or remove 'readOnly' marker from transactiondefinition.
環境:SSH
原因:這個異常產生的主要原因是DAO採用了Spring容器的事務管理策略,如果操作方法的名稱和事務策略中指定的被管理的名稱不能夠匹配上,spring就會採取默認的事務管理策略(PROPAGATION_REQUIRED,readonly).如果是插入和修改操作,就不被允許的,所以包這個異常
解決:修改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: PermGenspace 
環境:很多,如ssh整合時
原因:不斷的更新class,造成應用重啓,最終造成代碼區的內存空間滿了
解決:方法很多,1重啓,2增加代碼區的大小,3少更新class,4有時可能是log4j造成的問題,建議使用common-loggin.jar5,優化代



以下來自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>DWRServlet</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>allowGetForSafariButMake
ForgeryEasier</param-name>
<param-value>true</param-value> 

</init-param> 

<!--<init-param> 
   
<param-name>crossDomainSessionSecuri
ty</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 - ; nestedexception 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 JDKname下的下拉

菜單中選擇自己電腦上安裝的JDK版本(必須與步驟1中的JDK版本一致).
如果還是沒有解決,因爲有些MyEclipse版本自帶有JDK版本,所以也要將它改過來.
3.Window --> Preferences -->Java-->InstalledJRES,然後在右邊選擇與步驟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.javascriptwindow.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 exceptionis

org.xml.sax.SAXParseException: Document rootelement "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:/ProgramFiles/MyEclipse

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

classpath, does notexist.

環境:在myeclipse中run application或runjunit時,突然彈出一個對話框,內容如題。而且項目上會有一個小紅X
原因:myeclipse引用的某jar包不在classpath中
解決:按照提示的路徑將jar包加進去,如果某文件夾不存在就新建一個,以.開頭的文件夾不能直接新建,而
應該使用cmd來創建,加進去之後,刷新項目,項目的小紅X消除之後即可運行了

27.java.net.ConnectException: Connectiontimed 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.
atorg.codehaus.xfire.service.binding.WrappedBinding.readMessage

(WrappedBinding.java:32)
atorg.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(SoapBodyHandler.java:42)
atorg.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
atorg.codehaus.xfire.client.Client.onReceive(Client.java:406)
atorg.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:139)
atorg.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
atorg.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
atorg.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
atorg.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)
atorg.codehaus.xfire.client.Invocation.invoke(Invocation.java:114)
atorg.codehaus.xfire.client.Client.invoke(Client.java:336)
atorg.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
atorg.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 server2000數據庫還原失敗:(設備激活錯誤)

原因:路徑錯誤
解決:根據sql server 2000彈出的警告窗口中,提示的XXX.ldf和XXX.mdf。
找到sql server2000安裝目錄下的MSSQL\Data目錄,新建XXX.ldf和XXX.mdf,然後改爲:
如:D:\Program Files\Microsoft SQLServer\MSSQL\Data\XXX.ldf和
D:\Program Files\Microsoft SQLServer\MSSQL\Data\XXX.mdf即可
總之,還原後數據庫存放的路徑必須是存在的,否則就會報此錯誤

30.嚴重: Servlet.service() for servlet defaultthrew 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 filterStruts2 
Caught exception while loading file struts-default.xml - [unknownlocation] 
...
Caused by: java.lang.ClassCastException:org.apache.xerces.parsers.XML11Configuration cannot be cast toorg.apache.xerces.xni.parser.XMLParserConfiguration

環境:struts2
原因:原因有很多,並不是配置錯誤,而是其他原因,一種是jar衝突,還有其他的
解決方法:一種是刪除項目目錄中的xerces.jar,如果是還不行,新建一個項目,重新加入所有相關的jar包也許就好了,我就是這樣

32.Lastpacket sent to the server was 16 ms ago.

環境:mysql
原因:沒有啓動mysql服務
解決方法: 在服務裏啓動mysql


發佈了31 篇原創文章 · 獲贊 11 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章