公司須要將幾個windows系統tomcat中間件下開發的j2ee系統部署到linux系統websphere7中間件下去運行。java
這就須要作系統的適配工做。因爲時間比較久了,具體問題就不詳細寫了。把這個適配工做主要可能涉及到的方面,遇到的問題表現作了一個小的總結,但願可以幫到有須要的同窗。linux
主要修改的有如下幾個方面:web
1. web.xml的webapp聲明標籤版本改成2.4(websphere7不兼容webapp更高版本號,如大於2.4則websphere會內存溢出,直接掛掉)。spring
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不支持)windows
4. Java代碼中的一些路徑相關代碼的替換。tomcat獲取路徑的代碼與websphere中獲取路徑的代碼獲得的結果不一樣,須要注意修改。例如RealPath這種。api
5. springMVC採用*.do做爲servletDispacher的url-partern,去掉fileServlet配置。(was7不支持fileServlet配置)tomcat
6. 須要加載額外jar包的系統使用websphere擴展類操做選項(控制檯裏找到這個操做頁)做爲加載額外類的方法。加載額外類,須要在輸入框內輸入全部jar包的絕對路徑。websocket
7. 涉及到依賴tomcat運行環境的代碼,要額外增長websphere環境中缺乏的jar包。如websocket功能。oracle
8. linux系統環境的路徑以"/"起始,後臺查看log時需仔細,如/home/was7/**是對的,home/was7/**就錯了,由於缺乏了開始的"/"。
9. linux系統下websphere中對jar包中的類衝突反應異常的敏感(可能windows上沒有問題,可是linux上就出錯了),若是遇到疑難雜症,可在排除了其餘可能後考慮是否有系統依賴的jar包內的類名衝突了。