從「JAX-RPC 轉換工具」的驗證已判定此掃描中的 JAX-RPC Web 服務是使用 JAX-RPC 轉換工具進行 JAX-WS 二進位轉換的良好候選項。
此規則會標示使用任何 JAX-RPC 特定的套件和配置檔。 此外,此規則還將標示是否在 XML 對映檔中使用任何 jaxrpc-mapping-file 標記。 下表列出受此規則影響的 Java 套件、配置檔和 XML 對映檔:
套件 |
配置檔 |
XML 對映檔 |
|---|---|---|
|
|
|
在 Liberty 或 Liberty Core 中不支援 Java API for XML-based RPC (JAX-RPC)。 此技術在 WebSphere Application Server 9.0 版中已淘汰,在更新版本中可能會移除。 策略移轉路徑是使用 JAX-WS。 相對工作將根據選擇的移轉路徑而變更:
下表根據可能影響專案的因素來比較四個選項。
專案因素 |
選項 1使用「JAX-RPC 轉換」工具將 JAX-RPC Web 服務移轉至 JAX-WS Web 服務 |
選項 2手動將 JAX-RPC Web 服務移轉至 JAX-WS Web 服務 |
選項 3在 Liberty 中使用 Apache Axis 1 JAX-RPC 引擎 |
選項 4將 WebSphere Application Server Traditional 與其原生 JAX-RPC 引擎搭配使用 |
|---|---|---|---|---|
|
支援的解決方案 |
是 Liberty Core 以外的所有 Liberty 版本都支援 JAX-WS 作為可配置的特性 。 下載用於 Maven 和 Gradle 的 WebSphere Liberty JAX-RPC 轉換工具。 |
是 Liberty Core 以外的所有 Liberty 版本都支援 JAX-WS 作為可配置的特性 。 |
否 不支援 Axis 1。 |
是 在 WebSphere Application Server Traditional 中支援 JAX-RPC。 |
|
策略性解決方案 |
是 JAX-WS 在策略上適用於 Liberty Core 以外的所有 Liberty 版本。 |
是 JAX-WS 在策略上適用於 Liberty Core 以外的所有 Liberty 版本。 |
否 不再開發 Axis 1。 |
否 JAX-RPC 在 WebSphere Application Server Traditional 中已淘汰,在更新版本中可能會移除。 |
|
實作複雜性 |
低 已驗證應用程式是否使用「JAX-RPC 轉換工具」。 這個工具可以將 JAX-RPC 服務轉換成 JAX-WS Web 服務。 |
高 如果是大量 JAX-RPC 用戶端和 Web 服務,此選項會很複雜。 如果不使用「JAX-RPC 轉換」工具來將 JAX-RPC 服務 透過埠連接至 JAX-WS,則需要對程式碼庫進行許多變更。 |
低 如果應用程式已經使用 Axis 1,此選項不會複雜。 否則,此選項為中複雜度。 |
中 將 JAX-RPC Web 服務移轉至不同的引擎可保留大部分的程式碼庫。 |
|
進階特性 |
是 JAX-WS 提供了許多進階特性,如「註釋」、「JAXB 連結」和 SOAP 1.2。 |
是 JAX-WS 提供了許多進階特性,如「註釋」、「JAXB 連結」和 SOAP 1.2。 |
否 JAX-RPC 缺少許多 JAX-WS 中的進階特性。 |
否 JAX-RPC 缺少許多 JAX-WS 中的進階特性。 |
|
規格標準 |
是 |
是 |
是 雖然 JAX-RPC 仍然是 Java EE 規格的一部分,但將於 Java EE 6 淘汰。 |
是 雖然 JAX-RPC 仍然是 Java EE 規格的一部分,但將於 Java EE 6 淘汰。 |
|
建議 |
如果應用程式符合「JAX-RPC 轉換」工具的需求,請使用這個選項。 |
如果有 JAX-RPC Web 服務,且應用程式不符合「JAX-RPC 轉換」工具的需求,請使用這個選項。 |
如果 JAX-RPC Web 服務已在 Axis 1 上執行,請使用此選項。 |
如果 JAX-RPC Web 服務已在 WebSphere Application Server Traditional 上執行,或是有許多 JAX-RPC Web 服務尚未在 Axis 1 上執行,請使用此選項。 |
從用於 Maven 和 Gradle 的 WebSphere Liberty JAX-RPC 轉換工具下載「JAX-RPC 轉換」工具。
如需使用「JAX-RPC 轉換」工具將應用程式從 JAX-RPC 移轉至 JAX-WS 的相關資訊,請參閱線上文件中的 使用 Maven 將 JAX-RPC 應用程式移轉至 Liberty 或 使用 Gradle 將 JAX-RPC 應用程式移轉至 Liberty 。
如需將應用程式從 JAX-RPC 移轉至 JAX-WS 的相關資訊,請參閱線上文件中的 Web 服務移轉實務 :JAX-RPC 至 JAX-WS 和 JAXB。
如需 JAX-RPC 和 JAX-WS 之間差異的相關資訊,請參閱 JAX-WS 應用程式部署模型。
如果您已使用 Axis 1,若要在 Liberty 中使用它,您必須將 Axis 1 程式庫併入 Liberty 類別路徑中。
如果您使用內嵌的 JAX-RPC,您可以將 Web 服務轉換成使用 Axis 1。 下列程序說明如何將 Web 服務從 Red Hat JBoss 移轉至 Axis 1。
java -cp <AXIS LIBRARIES> org.apache.axis.wsdl.WSDL2Java -t java -cp <AXIS LIBRARIES> org.apache.axis.wsdl.WSDL2Java -t -s -o <Output directory> <WSDL file>
如需此指令的相關資訊,請參閱 Apache 網站上的 WSDL2Java 參照 。
如需 WSDD 配置元素的相關資訊,請參閱 Apache 網站上的 部署 (WSDD) 參照。
例如,下列方法有 JNDI 查閱:
必須取代查閱:
private com.ibm.demo.webservices.server.DemoType getService() throws Exception {若要使用 WebSphere Application Server JAX-RPC 引擎,您必須使用 WebSphere Application Server Traditional。 Liberty 不支援 JAX-RPC。 若要使用 Liberty,您必須選擇其他選項之一。
如果偵測到 JAX-RPC 配置檔,但在此應用程式內未偵測到使用 JAX-RPC Java API,則配置檔可能是先前使用 JAX-RPC 技術所產生的,但已不再需要它們。 可以移除未用的配置。