Jboss5 中常見異常處理

Jboss從4到5的版本的變化是比較大的,主要是它對包的衝突限制非常嚴格,在4版本中基本上不是非常嚴格,如果有包衝突,會自動選擇,但在5中回出非常多的轉換異常錯誤,導致項目無法發佈,或是發佈完成後無法訪問,現把這次升級中遇到的錯誤及解決辦法記錄如下.

1 The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory

 

將工程路徑下的WebRoot下的WEB-INF下的lib裏的jsp-api-2.0.jar,servlet-api-2.4.jar刪除就OK 了,應該是工程裏自帶的這兩個文件和TOMCAT裏的文件衝突導致的ok!

2 org.jboss.util.NestedSQLException: Could not create connection; - nested throwable: (java.lang.NullPointerException); - nested throwable: (org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (java.lang.NullPointerException))
這個是由於配置了數據庫的連接池,但是lib中沒有相應的連接數據庫的驅動,無法產生連接.

 3

1,Jboss 在啓動時報Failed to create a new SAX parser 錯誤。

2,Jboss 在啓動時報(java.lang.ClassNotFoundException:   JACC:Error   PolicyConfigurationFactory   :   cannot   find   class   :   null)   

 

解決方案

1,刪除 xerces*.jar 和xml-apis*.jar,解決XML 解析器實現衝突。

2,刪除jaas.jar and jcr*.jar,解決jaas 實現衝突。

 

4

java.lang.ClassCastException: gnu.xml.aelfred2.JAXPFactory cannot be cast to javax.xml.parsers.SAXParserFactory

原因爲:

   項目中的gnujaxp.jar和服務器上的java xml解析器衝突.

 

5

Getting java.lang.ClassCastException: org.apache.catalina.connector.RequestFacade cannot be cast to javax.servlet.http.HttpServletRequest

這個是由於項目中包含的Servlet.jar和服務器上的jar發生了衝突.

 

6 JBoss是自帶Hibernate的絕大多數庫文件的,所以IDE引入的Hibernate相關庫絕對不能隨着項目打包,做法同上,把“package”的勾選去掉即可。我曾被這個問題困擾,因爲將Hibernate打進war包的結果就是JBoss將在程序運行的時候報出下面的錯誤信息: 

org.jboss.resource.adapter.jdbc.WrapperDataSource cannot be cast to javax.sql.DataSource

這個問題非常的搞,即使把hibernate等的包都搞掉可能還會出問題,我在這邊被搞了好久,還好解決了,

總結一下

1 可能是hibernate包衝突問題.

2 可能是項目中的數據庫驅動和服務器上數據庫驅動重複,導致衝突

3 這個很隱蔽,可能有的包中含有Javax.sql.DataSource,也會衝突,我查到的就有一個,class12.jar

 

總之來說Jboss5是一個很讓人頭疼的版本.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章