WAS 開發需要注意的一些細節
【IT168 技術文章】
由於很多人都是在tomcat 下面開發的系統,然後才遷移到WAS上面去,所以就會出現這樣那樣的問題,導致很多程式碼因為不相容又得做大量的修改。
根據我在工作的過程中總結了一些開發和部署的過程中碰見的一些WAS的問題。這些問題主要是解決WAS不相容上面的一些經驗,另外還有一些常見的開發部署中碰到的一些問題的解決方法,總結了一下,希望對各位開發同仁有用。
1、在was中基礎資料型別和他的物件之間不能被隱式轉換。如: 一個int型別的變數被賦值成一個Integer物件或者一個一個Integer直接物件和一個int型別的變數或常量進行比較等。
解決方法:在物件的後面顯示的呼叫相應的轉換方法。如Integer物件intValue()方法。
2、was中對三目運算子號?:的應用也不能被隱式轉換,必須保證在:的兩邊的資料型別一致。如:true?"":Long 這種寫法was不會給Long型別的物件自動加上toString()方法進行隱式轉換。
解決方法:在物件Long的後面加上toString()方法。
3、was自帶的1.5的jdk不能解析範型,jsp頁面不能用任何範型。但是在java類中用範型然後用sun的1.5以上的jdk編譯以後was是可以執行的。
4、was中對jsp標籤的屬性用常量賦值時不能用的方式而應該去掉。如:
index="center" maxPageItems="" maxIndexPages="10" isOffset="" url="" export="offset,currentPageNumber=pageNumber" scope="request"> 上面這段程式碼中url="" 這行的程式碼會出錯;頁面異常:找不到標記屬性 ×× 的標記屬性資訊。 解決辦法: 應該寫成url="/approve/print!list.action" 。 5、was中對jsp標籤的屬性用變數賦值時不能用的方式而應該定義新的變數來賦值。 頁面異常:找不到標記屬性 ×× 的標記屬性資訊。 解決辦法: 將需要運算的變數採用一個臨時變數運算完賦值之後,再進行輸出。例如 6、was字符集的設定 進入控制檯的:伺服器-》應用程式伺服器-》執行的應用如:server1 -》Java 和程式管理 -》程式定義-》Java 虛擬機器頁面中的“通用jvm引數”的值設成“-Dfile.encoding=GBK -Ddefault.client.encoding=GBK”。 7.WebSphere升級到6.1.0.17所有struts2的程式都會發生Action找不到的情況。 解決方法如下,伺服器>應用程式伺服器>[選擇所使用的伺服器]>Web 容器設定>Web 容器>定製屬性,增加名稱為“com.ibm.ws.webcontainer.invokefilterscompatibility”的定製屬性,值為true。 8、WAS 出現如下異常: WARNING: Cannot set status. Response already committed. WARNING: Cannot set header. Response already committed. 解決辦法:was升級到6.1.0.17版本可以解決。 9、修改was的jsp編譯jdk版本可以解決1、2、3類似的問題。 修改方法,找到釋出之後的應用目錄,修改對應的配置檔案: \IBM\WebSphere\AppServer\profiles\AppSrv01\config\cells\zd-44bca248e33bNode01Cell\applications\web_war.ear\deployments\web_war\web.war\WEB-INF\ibm-web-ext.xmi檔案中 加上 10、myeclipse 配置websphere 除錯環境 · a. 下載下websphere6.1安裝,在安裝的過程中要記住自己設定的node name和cell name. · b. 啟動eclipse,在window->preperences->myeclipse->application servers->websphere6.1 點Browse...選擇你eclipse的安裝目錄. 我是安裝在D:\webshpere6.1 ,之後myeclipse會自動的將Profile Root Directory,Node name,cell name設定好。你需要確認一下Profile Root Directory就是你的安裝目錄下Profiles目錄下的一個資料夾。 我的是D:\webshpere6.0\profiles\AppSrv01 。 而node name和cell name它會設成以你的機器名命名的名字,應該將cell name改為Profiles RootDirectory下的installedApps目錄(D:\webshpere6.0\profiles\AppSrv01\installedApps)下的資料夾的名字我的是就是localhostNode01Cell,將node name改為cell name去掉後面的cell的名字。選中enable項。點Apply儲存。 · c 展開websphere6.1,選JDK,將JDK設定為webshpere6.1安裝目錄下的JDK(D:\webshpere6.0\java)。一定要設定成IBM的JDK要不websphere是不能執行的。 · d 啟動websphere(不是用eclipse,而是用websphere的啟動伺服器),選管理控制檯,點伺服器->應用伺服器,選一個服務,一般為server1。在故障診斷中選記錄和跟蹤->JVM 日誌,修改兩個檔名為console。儲存,登出,停止服務。 · e 在eclipse中新建自己的企業工程(一定要是企業工程)如果之前有web工程可以將該企業工程的web modle設定為該web project如沒有就自己新建一個。 · f 釋出企業工程(不是web project)在第一次釋出時要選Packaged Archive · g 用eclipse或websphere工具啟動websphere,進入控制檯,應用程式->安裝新的應用程式,點瀏覽在 \webshpere6.0\profiles\AppServ01\installableApps 下選自己釋出的工程名的ear檔案(你可能不是AppServ01) 然後next下去就可以了,唯一要注意的就是要設定web模組上下文根和要選上class 類檔案和jsp的修改自動裝載。 · h 退到控制檯首頁,應用程式->企業應用程式,選擇自己釋出的工程,點啟動。登出,停止websphere。 · I 在eclipse中再點發布,刪除剛釋出的工程,再點add。。。選擇企業工程,Exploded Archive。選Delete Remote。。。項。然後釋出。以後就可以實時除錯了。 注:要在websphere中除錯一定要建企業工程,一般的web工程是不能的 我們在J2EE的開發過程中還會遇到很多問題,尤其是我們開發的產品需要考慮在不同的平臺和中介軟體上執行的時候,所需要注意的東西就更多。WAS相對於其他中介軟體來說,針對配置檔案和程式碼的寫法要更嚴格的檢查,如果寫法不符合規範,就會出現錯誤。本文中提到的一些問題的解決辦法以及一些開發方法,是我在開發應用的時候碰到過的一些問題,經過一段時間的沉澱也積累了一些經驗,希望對各位同仁在處理類似問題的時候能有所幫助。在下只是拋磚引玉、班門弄斧,希望大家踴躍發言,批評指正。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-625551/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 實施“番茄工作法”需要注意的一些細節
- 你需要注意的Java小細節(一)Java
- 直播系統開發中選擇伺服器需要注意哪些細節伺服器
- Android CardView 開發過程中要注意的細節AndroidView
- MYSQL索引建立需要注意以下幾點細節MySql索引
- 微信小程式開發需要注意的一些規範微信小程式
- 搭建直播系統前需要注意的細節有哪些?
- 使用JavaScript變數需要注意哪些語法細節?JavaScript變數
- php函式的傳值如果需要引用傳遞注意的細節PHP函式
- 彙總Web前端開發工程師需要注意的一些開發規範!Web前端工程師
- 小程式開發所遇的問題以及一些小細節
- iOS開發細節iOS
- 這些Java程式碼最佳化細節,你需要注意!Java
- Golang陣列注意細節Golang陣列
- QT小小細節注意點QT
- SAP Spartacus 專案開發時需要注意的一些常見錯誤
- UITextField使用的一些細節UI
- Termux使用的一些細節UX
- Java面試要注意哪些細節Java面試
- Java泛型應該注意的細節Java泛型
- UI培訓教程分享:Ui設計的細節規範有哪些需要注意?UI
- 企業建站的相關注意細節分享
- JavaScript初學者應注意的七個細節JavaScript
- 網站定製開發需要注意的事項網站
- app開發需要注意哪些問題APP
- 開發小細節系列之一
- 關於python類屬性和例項屬性的一些細節注意點Python
- Git 的一些使用細枝末節Git
- fragment簡單有用的一些細節Fragment
- Google+的一些技術細節Go
- 一些 html+css 細節HTMLCSS
- 微信小程式開發需要注意的29個坑微信小程式
- 微信小程式開發需要注意的30個坑微信小程式
- PHP7中需要記住的細節PHP
- 集合:安卓開發中怎麼注意細節?一文告訴你四十個安卓
- 微信發影片確實存在一些限制,需要注意什麼
- 幾點需要注意選擇APP開發外包團隊的注意事項APP
- jquery在表單提交之前,給submit按鈕繫結ajax請求需要注意的細節jQueryMIT