| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
28 | 29 | 30 | 1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 | |||
12 | 13 | 14 | 15 | 16 | 17 | 18 | |||
19 | 20 | 21 | 22 | 23 | 24 | 25 | |||
26 | 27 | 28 | 29 | 30 | 31 | 1 | |||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
做一個(gè)web項(xiàng)目,啟動(dòng)tomcat時(shí)遇到了這樣一個(gè)錯(cuò)誤:
嚴(yán)重: Exception loading sessions from persistent storage
java.io.WriteAbortedException: writing aborted,java.io.NotSerializableException: ...
解決:對(duì)象要必須實(shí)現(xiàn)java.io.Serializable接口;
信息: Illegal access: this web application instance has been stopped already. Could not load java.net.BindException. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1244)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at com.mysql.jdbc.CommunicationsException.<init>(CommunicationsException.java:155)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2723)
解決辦法:
將tomcat的server.xml中的Context的reloadable設(shè)成false。
比如:<Context path="/expert" docBase="expert" debug="0" reloadable="false">
解決辦法也容易,只要把tomcat的server.xml 中的reloadable="true" 改成false就行了,不過這樣做就失去了熱部署的優(yōu)勢了,對(duì)于開發(fā)不是很方便,干脆還是不改吧。這種錯(cuò)誤不用理會(huì).
報(bào)錯(cuò)原理:
原因是因?yàn)樵趖omcat重啟的時(shí)候,因?yàn)橹暗膖omcat中的線程還沒有完全關(guān)閉,新啟動(dòng)tomcat就會(huì)報(bào)這個(gè)異常,不過這個(gè)不影響正常使用,只是跳個(gè)異常挺煩人的。使用過hibernate, spring或其他大型組件,當(dāng)一個(gè)WEB應(yīng)用系統(tǒng)中有很多類時(shí),如果開啟了Tomcat的reloadable=true,那么每當(dāng)相關(guān)文件改變時(shí), Tomcat會(huì)停止web app并釋放內(nèi)存,然后重新加載web app.這實(shí)在是個(gè)浩大的工程。所以我們總是在想如果能有只重載某幾個(gè)類的功能,將極大的滿足了我們的調(diào)試。
當(dāng)response.sendRedirect("xxxx"); 時(shí),而客戶端關(guān)閉了瀏覽器,就會(huì)出這種錯(cuò).
并非程序錯(cuò)誤.
引自:http://blog.csdn.net/m232341339/archive/2008/11/01/3201104.aspx
出現(xiàn)了錯(cuò)誤異常:
信息: Illegal access: this web application instance has been stopped already. Could not load java.net.BindException. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1273)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at com.mysql.jdbc.SQLError.createLinkFailureMessageBasedOnHeuristics(SQLError.java:1220)
at com.mysql.jdbc.CommunicationsException.<init>(CommunicationsException.java:51)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1070)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3270)
at com.mysql.jdbc.MysqlIO.quit(MysqlIO.java:1659)
at com.mysql.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:4296)
at com.mysql.jdbc.ConnectionImpl.cleanup(ConnectionImpl.java:1265)
at com.mysql.jdbc.ConnectionImpl.finalize(ConnectionImpl.java:2667)
at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
在啟動(dòng) tomcat ,并發(fā)布應(yīng)用后沒有問題,但是如果重新發(fā)布就出現(xiàn)如下異常:
this web application instance has been stopped already. Could not load java.net.BindException
this web application instance has been stopped already. Could not load com.mysql.jdbc
這是由于 MySQL 的 JDBC 驅(qū)動(dòng)放在應(yīng)用的 WEB-INF\lib 目錄下,在重新發(fā)布時(shí)其加載了兩次,故只要將其拷貝到 TOMCAT_HOME%\lib 中即可解決該問題。
解決這兩個(gè)異常可以將 MySQL 的驅(qū)動(dòng)文件從 WEB-INF\lib 文件夾中移動(dòng)到 %TOMCAT_HOME%\lib 中。
出現(xiàn)的錯(cuò)誤異常:
嚴(yán)重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
原因:spring和hibernate的包不兼容,asm.jar(hibernate)和asm-2.2.3.jar(spring)