WebSphere從Windows遷移至Linux出現org.dom4j.DocumentException異常:Nested exception: prolog 中不允許有內容


2013年的元旦,因為項目上線要加班,所以沒有放假。可是,就在這幾天,Web系統突然出現了嚴重異常。。。

 

系統開發和測試基本都結束了,等着從測試環境向正式環境遷移。就在元旦前一天,一個嚴重的異常出現了,異常信息如下:

Caused by: org.dom4j.DocumentException: Error on line 1 of document  : prolog 中不允許有內容。 Nested exception: prolog 中不允許有內容。
 at org.dom4j.io.SAXReader.read(SAXReader.java:355)
 at org.dom4j.io.SAXReader.read(SAXReader.java:271)
 at org.dom4j.DocumentHelper.parseText(DocumentHelper.java:215)
 ... 56 more

 

因為服務器是剛買的,系統都是新裝的,並且Java程序都是跨平台的,在Windows下和Linux下都可以運行的,理論上來說應該沒有什么問題,以前也做過Windows和Linux的遷移

於是,我們把項目從測試的Windows環境遷移到Linux環境,都是同一個廠家的服務器,JDK、WebSphere版本都一樣,應用程序版本也一致。

這個異常出現的位置是在數據庫里的表單往頁面加載的時候出現的,數據庫里的數據沒有問題,用Windows上的程序已經測試通過了,基本確定是項目部署環境的問題。還有一個功能有問題,流程圖顯示不出來。看起來沒什么聯系,唯一的聯系就是數據都是大字段保存在數據庫里的。

發現了異常之后,我重裝了好幾遍JDK和WebSphere的環境,Web系統里的功能測試都正常,除了表單加載和流程圖顯示的功能。實在想不到會有什么原因可以導致這么詭異的異常出現,畢竟整個系統只有2個功能不好用。

4號項目就正式使用了,時間很緊迫啊。為了減少操作系統差異的可能性,我們也把Linux重裝了Windows,發現問題仍然存在,這樣就更確定也不是操作系統的原因導致出現異常,但是依然找不到具體原因。

幾乎絕望了,給項目負責人打了電話說了緊急情況,到時候客戶要是追究好提前有個准備,雙機Linux環境不能上線使用了,畢竟也算是一次意外事故吧。

晚上,項目組吃過飯說要去看二人轉,我突然有了一種預感覺得可以找到解決問題的辦法。於是半路抄小道溜回去加班了,不一會兒就找到了問題所在。

原因是由於Oracle的ojdbc14.jar文件不一致,正式環境的jar文件也是ojdbc14.jar,但是比測試環境的文件要小一些,只有1.14M。正式環境是使用其他的服務器遠程搭建好的,Oracle的jar包也是用的遠程服務器的,其他項目也用的是那個jar包,的確很難想到數據庫驅動包會出問題,畢竟系統那么多功能就2個不能用。

還好,總算找到問題的原因了。找到原因之后,我就將ojdbc14.jar文件重新發布到正式環境測試,最后問題順利得到解決。雖然花了兩天時間,找到原因也總算沒白忙活。

 

小      結:有時候,解決問題也需要一些靈感,可能就在那一剎那間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM