1. 程式人生 > >windows系統tomcat上開發的j2ee程式,如何適配linux系統上奔跑的websphere7

windows系統tomcat上開發的j2ee程式,如何適配linux系統上奔跑的websphere7

公司需要將幾個windows系統tomcat中介軟體下開發的j2ee系統部署到linux系統websphere7中介軟體下去執行。

這就需要做系統的適配工作。由於時間比較久了,具體問題就不詳細寫了。把這個適配工作主要可能涉及到的方面,遇到的問題表現做了一個小的總結,希望能夠幫到有需要的同學。

主要修改的有以下幾個方面:

1. web.xml的webapp宣告標籤版本改為2.4(websphere7不相容webapp更高版本號,如大於2.4則websphere會記憶體溢位,直接掛掉)。


2. 將資料庫連線池由proxool改為c3p0(新增c3p0相關jar包:c3p0-0.9.5.2.jar, c3p0-oracle-thin-extras-0.9.5.2.jar,mchange-commons-java-0.2.11.jar, 補充關聯jar包:slf4-api-1.7.12.jar, slf4j-log4j12-1.7.12.jar)。(遇到資料庫不能正確連線的問題,如果有兩個或更多採用proxool連線池的j2ee系統部署在一個websphere節點下,那麼將只有一個j2ee系統能夠正常連線資料庫,而且不確定將是哪一個能成功連線,bug排查難度大,表現詭異。)


3. Struts的配置檔案,不使用萬用字元*,改為使用全路徑。(was7不支援)


4. Java程式碼中的一些路徑相關程式碼的替換。tomcat獲取路徑的程式碼與websphere中獲取路徑的程式碼得到的結果不同,需要注意修改。例如RealPath這種。


5. springMVC採用*.do作為servletDispacher的url-partern,去掉fileServlet配置。(was7不支援fileServlet配置)


6. 需要載入額外jar包的系統使用websphere擴充套件類操作選項(控制檯裡找到這個操作頁)作為載入額外類的方法。載入額外類,需要在輸入框內輸入所有jar包的絕對路徑。


7. 涉及到依賴tomcat執行環境的程式碼,要額外增加websphere環境中缺少的jar包。如websocket功能。


8. linux系統環境的路徑以"/"起始,後臺檢視log時需仔細,如/home/was7/**是對的,home/was7/**就錯了,因為缺少了開始的"/"。


9. linux系統下websphere中對jar包中的類衝突反應異常的敏感(可能windows上沒有問題,但是linux上就出錯了),如果遇到疑難雜症,可在排除了其他可能後考慮是否有系統依賴的jar包內的類名衝突了。