此規則會根據下列準則,偵測 JAX-RPC Web 服務是否存在:
- 存在 web-services.xml 檔
- 相同資料夾中存在 weblogic-webservices.xml 檔和 webservices.xml 檔
快速修正程式
在原始檔掃描器中,此規則會產生具有特定 IBM(R) Ant 作業的 Ant Script。 這些作業會產生基於 WebLogic J2EE Web 服務部署描述子的 JAX-RPC Web 服務。 如果 IBM Ant 產生的檔案不存在於專案的根資料夾中,快速修正程式會掃描 Web 服務部署描述子,並產生 Ant Script。 該 Script 包含用於產生 JAX-RPC Web 服務的 IBM Ant 作業。
規則內容
您必須提供正確的規則內容值。 如果要變更此規則的內容值,請在「軟體分析器配置」視窗中選取該規則。 然後使用呈現在「內容」標籤中的欄位。 此規則的內容為:
- 產生的 Ant Script 名稱:
指定要產生之新 Ant Script 的名稱。Script 名稱必須是有效的檔名。該值不得包括任何正斜線或反斜線。 所產生的 Script 將位於專案的根資料夾內。
預設值:build-ibm-ws.xml
- 產生資料夾名稱:
指定產生構件所在的資料夾的名稱。該值不得包括任何正斜線或反斜線。 產生資料夾將位於專案的根資料夾內。
預設值:ibm-ws-gen
Ant 類別路徑
Ant 類別路徑從 Eclipse 專案進行計算。
驗證編譯所需的所有元素是否位於 Eclipse 類別路徑上,非常重要。
定義於 web-services.xml 檔的 JAX-RPC 服務
根據定義於 web-services.xml 中的資訊和服務類型,會產生 Ant Script,並可能會產生用於代表 Web 服務端點介面的其他 Java 程式碼,以重新產生 JAX-RPC 服務。
- 支援的元件
只能辨識和轉換 Stateless Session Enterprise Bean (<stateless-ejb>) 和 Java® (<java-class>) 元件。
- Stateless EJB 元件:
依照 <ejb-link> 元素之路徑屬性中的定義,Enterprise JavaBeans™ (EJB) JAR 檔必須存在於專案中。 快速修正程式會掃描 EJB JAR 檔,並根據 EJB 遠端類別,產生新的「服務端點介面 (SEI)」類別。
SEI 介面與 EJB 遠端介面的不同之處在於,類別必須延伸 java.rmi.Remote,而且每一個方法都必須擲出異常狀況 java.rmi.RemoteException。
快速修正程式會使用 EJB 遠端介面上的 Java 反射,產生新的 SEI。因此,必須設定 Eclipse 專案類別路徑,使其包含所有必要的類別、JAR 檔和資料夾等,才能容許快速修正程式正確地載入 EJB 遠端類別。
依照使用者在規則內容中提供的設定,會在產生資料夾中的 sei 資料夾內產生 SEI。SEI 套件與 EJB 遠端介面套件相符,而且 SEI 名稱將與 EJB 遠端介面名稱相同,其後會附加單字 SEI。此外,會將新的 SEI 資料夾新增至專案類別路徑中。
- Java 類別元件:
與 EJB 元件類似,快速修正程式會根據定義於 <class-name> 屬性的 Java 類別,產生「服務端點介面」。
- 產生的 Ant 目標:
產生的 Ant Script 包含目標,以根據快速修正程式期間建立的新 SEI,產生 WSDL 檔和 JAX-RPC 服務。
WSDL 產生目標將具有名稱 genWSDL_ssss,其中 ssss 是 <web-service> 元素之名稱 屬性欄位中提供的 JAX-RPC 服務名稱。
服務產生目標將具有名稱 genService_pppp,其中 pppp 是 <stateless-ejb> 或 <java-class> 元素之名稱 屬性中提供的元件名稱。
快速修正程式不要使用其他元素(例如,<handlers-chain>、<types>、<operations> 和 <security> 等)中提供的資訊。
定義於 webservices.xml 檔的 JAXRPC 服務
根據定義於 webservices.xml 檔的資訊和服務類型,會產生 Ant Script,以重新產生 JAX-RPC 服務。
- 產生的 Ant 目標:
產生的 Ant Script 包含目標,以產生 WSDL 檔和 JAX-RPC 服務。
如果快速修正程式找不到 <wsdl-file> 元素中定義的 WSDL 檔,則只會產生 WSDL 產生目標。
如果建立了 WSDL 產生目標,則它將具有名稱 genWSDL_ssss,其中 ssss 是由 <webservice-description-name> 元素定義的服務名稱。
服務產生目標將具有名稱 genService_pppp,其中 pppp 是由 <port-component-name> 元素定義的埠名稱。
IBM WebSphere Application Server Ant 作業
WebSphere® Application Server 包括 Ant 作業(例如,java2wsdl 和 wsdl2java),以便為 JAX-RPC 服務產生必要的構件。 產生的 Ant Script 使用這些作業來建置服務。
如需這些作業的相關資訊,請參閱
WebSphere Application Server 說明文件。
執行 Ant Script
快速修正程式產生 Ant Script 之後,請檢視該 Script,並新增其他自訂作業(必要的話)。
請參閱應用程式伺服器說明文件,以瞭解 IBM Ant 作業的其他自訂作業。
您必須使用 WebSphere Application Server 隨附的 Ant
工具來執行 Script。 IBM Ant Script
可以從下列位置執行:
- WAS_HOME\bin\ws_ant.bat(在 Windows® 作業系統上)
- WAS_HOME\bin\ws_ant.sh(在 UNIX® 作業系統上)
範例:c:\IBM\AppServer\bin\ws_ant.bat -f
c:\eclipse\MyProject\ibm-ws-gen.xml genService_TestService
執行 Ant 目標之後,產生的構件位於產生資料夾中。然後,使用者可以檢查產生的程式碼和部署描述子,並將這些構件新增至它們的模組中。