WebSphere 6.0 + DB2 部署心得

來源:互聯網
上載者:User
近期的一個項目分行指定在WebSphere+DB2上運行,由於第一次接觸這兩個系統,所有在開發過程中一直使用Tomcat 5.5+DB2這樣的一個環境,運行一直很好。可是在最後往WebSphere上部署時,遇到了很多的麻煩。 一、WebSphere部署遇難題 經過多次的反覆的部署,應用程式就是無法運行。由於對WebSphere不熟,一開始以為是WebSphere安裝和配置的問題,就反覆在安裝和配置上搗鼓。後來潛下心來仔細研究了了一下WebSphere的執行階段錯誤資訊,找到了錯誤記錄檔的位置。(順便說一句,IBM的東東路徑實在是太複雜了,找一個設定檔簡直象進入了十八層地獄一般)。一看明白了,原來是某某類的某方法沒找到。 結合以前知道的一些關於IBM的知識,立即知道這是JDK的問題。IBM使用自己的JDK,版本是4.1.2。而我在項目中使用的是5.0。於是立即回到IDEA中,把項目的JDK設為WebSphere 6.0內建的JDK,然後加上WebSphere的Runtime Lib。於是,IDEA象開殺戒一樣,項目裡面一片紅色標記。我改改改,把所有用到Java 5的地方全降成1.4的,有點忍痛割愛的感覺。然後編譯,心想這下應該沒問題了吧。 再部署,一帆風順。網站模組也運行起來,那個高興啊。心情舒暢的開啟瀏覽器,一運行,NND,還是報錯。查看WebSphere系統日誌,沒有任何錯誤資訊,真的把人氣壞了。因為不知道如何調試WebSphere,只好編譯一次部署一次再運行一次。最後才發現,是剛才給代碼動手術的時候,傳回值的XML少加了一個空格,造成傳回值的XML無效。該死的XMLHttp。 以為惡夢到此為止,興沖沖的再次運行。結果登入介面出來了,有點激動。輸入登入資訊,確定。“對象無效”的該死提示再次冒出來。出這個錯誤,百分百是伺服器的問題。出鬼了都。 趕緊扒出系統日誌,看到了一大堆“Class can't be find”這樣的錯誤,這種錯誤心裡會好受些。很快的找到是什麼類:java.lang.NoClassDefFoundError: javax/sql/rowset/CachedRowSet。 老辦法,Google搜。 問題水落石出。spring的sqlRowSet使用的是JDK1.5的CachedRowSet實現。按照spring官方的解釋,找到了spring內建的一個rowset.jar部署上去。結果還是出錯。就在我快崩潰的時候,在網上發現了一位高手發的文章: 

使用最新sun公司的rowset.jar包的請注意

從sun公司下載的最新的rowset檔案名稱是jdbc_rowset_tiger-1_0_1-mrel-ri.zip
這是個新的rowset版本,最令人感興趣的當然是裡面的CachedRowSet類,可是這個版本中,CachedRowSet並沒有作為一個直接可使用的類,而是定義為一個介面。為此,在新版本中,增加了一個CachedRowSetImpl類,它實現了CachedRowSet類,只要調用new CachedRowSetImpl(),就可以建立一個CachedRowSet對象,但就是這個new CachedRowSetImpl(),在使用時讓人頭痛不已。程式執行這個語句會拋出異常。根本用不了。
經過一番尋找,終於在國外同仁的一個貼子上找到了問題所在!
原來是這個rowset最新版本的一個BUG。不敢獨享,拿來與大家共用:
解決方案:
(1)解壓jdbc_rowset_tiger-1_0_1-mrel-ri.zip,產生rowset.jar檔案
(2)再解壓rowset.jar文檔,在產生的com/sun/rowset目錄下找到RowSetResourceBundle.properties檔案。
(3)將RowSetResourceBundle.properties更名為RowSetResourceBundle_CN.properties
說明:這裡_CN表示所處中國。不同的國家,這個名稱不同
經過以上的步驟
就可以正常使用new CachedRowSetImpl()啦.

http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=123&threadID=22607&tstart=210 按照這個辦法一修複,問題全部搞定。 二、DB2 又怎麼了? 很快又回到了我在部署TomCat是遇到的同樣問題,在WebSphere中提示找不到“COM.ibm.db2.jdbc.app.DB2Driver”類的驅動。 解決這個問題的辦法是:1、換成COM.ibm.db2.jcc.DB2Driver,第4類驅動程式。OK。2、在WebSphere的startServer.sh指令碼中運行db2profile指令碼,該指令碼在DB2的home目錄下的sqllib目錄中。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.