程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> WebSphere >> 如何將應用程序更輕松地遷移到WebSphere Application Server

如何將應用程序更輕松地遷移到WebSphere Application Server

編輯:WebSphere

Donald Vines & Andy Hoyt: Application Migration 工具如何將應用程序更輕松地遷移到 WebSphere Application Server

使應用程序分析和遷移更輕松

IBM WebSphere Application Server Migration Toolkit 的 Application Migration 工具能幫助您輕松地將應用程序從一個源應用服務器遷移到 WebSphere Application Server V7.0 上。源應用服務器現在支持 WebLogic Server 8.1 和 WebLogic Server 9.2。Application Migration 插件在一個導入的 EAR 文件上工作。這個工具掃描 JSPs、Java™ 源代碼和部署描述符以發現移植問題,並在 Eclipse IDE 的 Problems 視圖中報告這些問題。您可能遇到的大多數移植問題都可以由這個工具來確定,在很多情況下,這個工具都會給您提供一個快速修復方案來解決它們。

如果您對這個工具不熟悉,本文有 Application Migration 工具功能的簡介,以及一些下載和其他資料的指引,幫助您開始使用。

這個工具是什麼?

Application Migration 工具是努力使 IBM Rational® Software Analyzer V7.1 能夠幫助將一個應用程序從支持的源應用服務器遷移到 WebSphere Application Server 的產物。Rational Software Analyzer 是一個簡單而功能強大的工具,能自動進行軟件分析,提供更高質量的軟件。要完成這項工作,Rational Software Analyzer 使用了大量規則,同時它還允許創建自定義規則,以便適應各種具體環境和目的。

為實現那個目的,創造了用於發現代碼遷移問題的自定義規則,這些規則為工具提供了解決許多此類問題的快速修復方案。所有這些自定義規則都捆綁在一個 Eclipse 3.4.2 插件中,您可以免費下載(還無需任何額外許可)。

該插件在導入的 EAR 文件上運行。它對 Eclipse 工作區內的 Java 源代碼、JSPs 和部署描述符進行解析,並在 Problems 視圖中報告遷移問題。因為這個工具是在源文件、而不是類文件上運行,在運行工具前,您無需在 WebSphere Application Server 下對應用程序進行全新編譯。

當分析完成以後,在 Problems 視圖中右鍵單擊各個獨立結果會為您提供解決問題的選項:

View Result 會打開一個編輯器,顯示觸發規則的源文件。出錯的那一行將高亮顯示,違反規則的圖標就顯示在這一行的旁邊。

Quick Fix 將執行遷移,這個遷移會修改受影響的 Java 代碼、JSP 頁面或者部署描述符。快速修復方案也許會直接改變文件,或者它會顯示完成修改所需的步驟。

Quick Fix Preview 支持在任何更新實際執行之前,並排對比原始代碼和修改後的代碼。

Ignore Result 無需進行文件修改就能從清單中刪除規則。

Quick Fix All 會解決一個給定規則的所有問題。

接受快速修復方案,還是用自己的方法,在這方面您掌握絕對的決定權。如果您不想一步一步執行,那麼您還有一個選擇:接受全部修改。當您完成修改審查以後,您就可以從 Eclipse 中導出 EAR 文件,將其部署到 WebSphere Application Server。

這款插件是一個基於知識的遷移助手。這就意味著,即便開發人員沒有源應用服務器或者 WebSphere Application Server 方面的豐富知識,也能夠成功地執行遷移。

這個工具如何運作?

如果將要遷移的應用程序並不在 Eclipse 中,那麼您就必須在執行遷移之前,將 EAR 文件導入 Eclipse。如果在 EAR 中的 Java 源文件和 JSP 源文件不可取得,那麼這個工具就只能運行規則來遷移部署描述符文件。如果在 EAR 文件中的源文件可用,那麼該工具就運行規則來遷移:

Java 源文件

JSP 源文件

部署描述符文件

類路徑審查

該插件包括用於解析 Java 源文件、JSP 源文件以及部署描述符文件的解析器,還有一系列的規則,用於檢測專有類、APIs、常量的使用,以及與 Java EE 規范在產品一致性方面的任意差異。這些規則在查找這些文件中的移植問題的主要根源方面是非常有效的。

下面的小節列出了針對上述文件類型的一些規則和快速修復方案

Java 源文件

插件是根據 .java 的擴展名來檢測 Java 源文件的。這包括 servlets、EJB 組件,以及 Java 類。該工具解析工作空間中的所有 Java 文件,運用規則來查找任何移植問題,並同時顯示問題和快速修復方案。

表 1. Java 源文件

規則 快速修復方案 不使用 WebLogic RMI API 調用。
檢測 WebLogic 專有 RMI 類和 APIs 的引用。 修改代碼來使用 Java 標准 RMI 類和 APIs。 不使用 WebLogic 特定的 JNDI 名稱。
掃描 Java 文件檢測 WebLogic 專有 JNDI 名稱值的使用:

 

java.naming.factory.initial = weblogic.jndi.WLInitialContextFactory

java.naming.provider.url = t3://localhost:7001

修改代碼來使用 WebSphere Application Server JNDI 名稱,或者使用可移植的 JNDI 查詢:

 

java.naming.factory.initial = com.ibm.websphere.naming.WsnInitialContextFactory

java.naming.provider.url = corbaloc:iiop:localhost:2809

不使用 WebLogic 專有的啟動類或者關閉類。
查找實現 WebLogic 啟動和關閉接口的類。 轉換這些類來使用標准 javax.servlet.ServletContextListener 接口,並將其注冊到應用程序的 web.xml 文件中。 不使用不兼容的 UserTransaction 查詢名稱。
查找 BMT beans 和 servlets 中對 ctx.lookup(“javax.transaction.UserTransaction”)的引用。(WebLogic 允許這些不兼容查詢,而 WebSphere Application Server 則不允許。) 如果這些問題發生在一個 BMT bean 中,那麼快速修復方案就對這個 bean 進行轉換來使用 ctx.getUserTransaction()。如果問題發生在一個 servlet 或者客戶機代碼中,那麼,快速修復方案就會對它進行轉換來使用 JNDI 查詢: ctx.lookup(“java:comp/UserTransaction”) 不使用不匹配的拋出子句。
查找 EJB bean 方法中拋出子句之間的不匹配,以及本地和遠程接口間的不匹配。(WebLogic 允許這種不合格的不匹配,而 WebSphere Application Server 則不允許。) 添加任何缺失的異常,並將任何額外的異常都移動到 EJB bean。本地和遠程的接口不改變。 不使用 WebLogic 專有 Apache 包。
標記對 WebLogic Apache 專有類和能夠映射到開源 Apache 類和 APIs 的 APIs 的引用。 修改代碼來使用開源 Apache 類和 APIs。您需要下載適合的 Apache Xerces .jar 文件,並將其包括到您的應用程序中。

JSP 源文件

這款插件通過 .jsp 擴展名來檢測 JSP 源文件,解析工作空間中的所有此類文件,並應用規則來查找移植問題,提供快速修復方案。要注意的是,JSP 源文件可以像 Java 源文件那樣,調用不可移植的類、APIs,以及常量。插件對這些移植問題進行檢測,並按照之前所述方式進行處理。

表 2. JSP 源文件

規則 快速修復 避免為 JSP 片段使用 .jsp 擴展名。
查找 JSP 片段。有 .jsp 擴展名的片段文件將會被標出,擴展名為 .jspf 的則不會。根據 Java EE 規范,所有 JSPs 都必須進行編譯;JSP 片段則不必。 修改文件名及其所有使用重構對話框的引用。 使用 tag/attribute 名稱的正確大小寫。
報告 JSP 中任何大小寫有誤的 tag/attribute 名稱。根據 XML 規范,tag/attribute 名稱是大小寫敏感的;WebSphere Application Server 對此有強制要求,而 WebLogic 則不然。 修改受影響的 JSP 源文件中的大小寫,來匹配 tag 庫中定義的大小寫。

部署描述符文件

這款插件通過它們的文件名(例如, weblogic.xml、weblogic-ebj-jar.xml、weblogic-webservices.xml,等等)來檢測廠商特定的部署描述符文件。和其他文件一樣,插件解析部署描述符,應用規則來查找問題,並提供快速修復方案。

表 3. 部署描述符文件

規則 快速修復方案 使用 EJB 引用的標准部署描述符。
WebLogic 部署描述符(weblogic.xml)可以包含 EJB 引用,將會話 beans 映射到它們的 JNDI 名稱。 將 weblogic.xml 文件中定義的所有 EJB 引用移動到標准 web.xml 部署描述符。 使用資源引用名稱的標准部署描述符。
WebLogic 特定的部署描述符(weblogic.xml)可以包括資源引用,將數據資源映射到他們的 JNDI 名稱。 將 WebLogic 特定的部署描述符中定義的所有資源引用移動到標准部署描述符。 不使用 WebLogic Web 服務部署描述符。
查找 Web 服務部署描述符,特別注意查找以下內容是否存在:

 

web-services.xml

weblogic-webservices.xml 和同一文件夾中的 Java EE 部署描述符(webservices.xml)。

根據從部署描述符中收集來的信息,產生一個使用 WebSphere Application Server ANT 任務來產生適當 Web 服務工件的 ANT 腳本。如果服務需要,該修復方法還會產生 Service Endpoint Interface(SEI),並將其添加到項目類路徑中。這樣您就可以運行 ANT 腳本來遷移 Web 服務。

類路徑審查

類路徑審查會驗證類路徑是否設置合理。

表 4. 類路徑審查

規則 快速修復方案 使用類路徑的 MANIFEST.MF。
查找 EAR 文件的 APP-INF 文件夾中的類和庫。EAR 文件的 WebLogic 擴展名會將那些類和庫顯式添加到類路徑。 通過更新模塊的 MANIFEST.MF 文件的類路徑條目,將一個條目添加到每個受影響模塊的類路

工具使用

使用 Application Migration 工具的詳細步驟不在本文范圍之內。但是為了幫助您開始使用,圖 1 顯示了該工具的一些關鍵特性。圖中顯示了 Application Migration 工具將一個 WebLogic Startup 類遷移到 WebSphere Application Server 的屏幕截圖。在該圖中:

Java Source Compare 面板顯示了一個快速修復方案審查特性的例子。如果應用快速修復方案,面板左半邊就顯示代碼,右半邊就顯示未應用修復方案的原始代碼。

在右列中的 Help 選項卡解釋了應用的規則和快速修復方案。

Java Source Compare 面板顯示了您可以選擇用於遷移代碼的可用選項。選項包括:

查看已掃描文件。

用快速修復方案修改文件。

用快速修復方案審查來預覽快速修復。

忽略結果。

修復該規則的所有項。

圖 1. Application Migration 工具分析結果

如果您正在從事將應用程序遷移到 WebSphere Application Server 方面的工作,或者將來您將要進行應用程序遷移工作,請下載並試用 Application Migration 工具。您可以找到一個入門向導來幫助您,還有一個論壇能夠讓您分享案例和收集反饋。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved