JAX-RPC - Gültiger Kandidat für das JAX-RPC-Konvertierungstool

Die Validierung durch das JAX-RPC-Konvertierungstool hat ergeben, dass ein JAX-RPC-Webdienst in diesem Scan ein guter Kandidat für die Quellkonvertierung in JAX-WS mithilfe des JAX-RPC-zu-JAX-WS-Quellmigrationshelfers oder die Binärkonvertierung in JAX-WS mithilfe des JAX-RPC-Konvertierungstools ist. Diese Regel markiert die Verwendung JAX-RPC-spezifischer Pakete und Konfigurationsdateien. Außerdem markiert diese Regel die Verwendung des Tags jaxrpc-mapping-file in XML-Zuordnungsdateien. In der folgenden Tabelle sind die Java-Pakete, Konfigurationsdateien und XML-Zuordnungsdateien aufgelistet, die von dieser Regel betroffen sind:

Pakete

Konfigurationsdateien

XML-Zuordnungsdateien

  • javax.xml.rpc
  • javax.xml.rpc.encoding
  • javax.xml.rpc.handler
  • javax.xml.rpc.handler.soap
  • javax.xml.rpc.holders
  • javax.xml.rpc.server
  • javax.xml.rpc.soap
  • ibm-webservices-ext.xmi
  • ibm-webservices-bnd.xmi
  • ibm-webservicesclient-ext.xmi
  • ibm-webservicesclient-bnd.xmi
  • ws-security.xml
  • webservices.xml
  • web.xml
  • ejb-jar.xml
  • ibm-webservicesclient-bnd.xmi
  • application.xml

Java API for XML-based RPC (JAX-RPC) wird in Liberty und Liberty Core nicht unterstützt. Diese Technologie wurde in WebSphere Application Server Traditional Version 9.0 als veraltet markiert und kann in einer der künftigen Versionen entfernt werden. Der strategische Migrationspfad ist die Verwendung von JAX-WS. Der relative Aufwand ändert sich abhängig von dem ausgewählten Migrationspfad:

In der folgenden Tabelle werden die fünf Optionen anhand der Faktoren verglichen, die sich auf Ihr Projekt auswirken könnten.

Projektfaktoren

Option 1

Migration von JAX-RPC-Webdiensten zu JAX-WS-Webdiensten mit dem JAX-RPC Source Migration Helper

Option 2

JAX-RPC-Web-Services mit dem JAX-RPC-Konvertierungstool zu JAX-WS-Web-Services migrieren

Option 3

JAX-RPC-Web-Services manuell zu JAX-WS-Web-Services migrieren

Option 4

JAX-RPC-Engine von Apache Axis 1 in Liberty verwenden

Option 5

WebSphere Application Server Traditional mit der zugehörigen nativen JAX-RPC-Engine verwenden.

Unterstützte Lösung

Ja

JAX-WS wird als konfigurierbares Feature in allen Liberty-Editionen mit Ausnahme von Liberty Core unterstützt.

Ja

JAX-WS wird als konfigurierbares Feature in allen Liberty-Editionen mit Ausnahme von Liberty Core unterstützt. Laden Sie WebSphere Liberty JAX-RPC-Konvertierungstool für Maven und Gradle herunter.

Ja

JAX-WS wird als konfigurierbares Feature in allen Liberty-Editionen mit Ausnahme von Liberty Core unterstützt.

Nein

Axis 1 wird nicht unterstützt.

Ja

JAX-RPC wird in WebSphere Application Server Traditional unterstützt.

Strategische Lösung

Ja

JAX-WS ist von strategischer Bedeutung für alle Liberty-Editionen mit Ausnahme von Liberty Core.

Ja

JAX-WS ist von strategischer Bedeutung für alle Liberty-Editionen mit Ausnahme von Liberty Core.

Ja

JAX-WS ist von strategischer Bedeutung für alle Liberty-Editionen mit Ausnahme von Liberty Core.

Nein

Axis 1 ist nicht mehr in Entwicklung.

Nein

JAX-RPC wurde in WebSphere Application Server Traditional Version 9.0 als veraltet markiert und kann in einer der künftigen Versionen entfernt werden.

Implementierungskomplexität

Mittel

Die Anwendung wurde für die Verwendung des JAX-RPC Source Migration Helper validiert. Die JAX-RPC-Dienste können mit diesem Tool im Quellcode Ihrer Anwendung in JAX-WS-Webservices umgewandelt werden.

Niedrig

Die Anwendung wurde für die Verwendung des JAX-RPC-Konvertierungstools validiert. Die JAX-RPC-Dienste können mit diesem Tool in JAX-WS-Webservices im Binärarchiv umgewandelt werden.

Hoch

Diese Option kann komplex sein, wenn sehr viele JAX-RPC-Clients und -Web-Services beteiligt sind. Wenn Sie das JAX-RPC-Konvertierungstool nicht verwenden, um JAX-RPC-Services zu JAX-WS zu portieren, sind viele Änderungen an der Codebasis erforderlich.

Niedrig

Wenn die Anwendung bereits Axis 1 verwendet, ist diese Option nicht komplex. Andernfalls hat diese Option eine mittlere Komplexität.

Mittel

Bei der Migration von JAX-RPC-Web-Services auf eine andere Engine bleibt der größte Teil der Codebasis erhalten.

Erweiterte Funktionen

Ja

JAX-WS stellt viele erweiterte Features bereit, z. B. Annotationen, JAXB-Bindung und SOAP 1.2.

Ja

JAX-WS stellt viele erweiterte Features bereit, z. B. Annotationen, JAXB-Bindung und SOAP 1.2.

Ja

JAX-WS stellt viele erweiterte Features bereit, z. B. Annotationen, JAXB-Bindung und SOAP 1.2.

Nein

In JAX-RPC fehlen viele der erweiterten Features, die von JAX-WS bereitgestellt werden.

Nein

In JAX-RPC fehlen viele der erweiterten Features, die von JAX-WS bereitgestellt werden.

Spezifikationskonformität

Ja

Ja

Ja

Ja

JAX-RPC ist zwar noch Teil der Java-EE-Spezifikation, gilt ab Java EE 6 jedoch als veraltet.

Ja

JAX-RPC ist zwar noch Teil der Java-EE-Spezifikation, gilt ab Java EE 6 jedoch als veraltet.

Empfehlung

Verwenden Sie diese Option, wenn Sie Anspruch auf die Website IBM Application Modernization Accelerator Developer Tools haben. Dies ist die einzige Option, die eine automatische Unterstützung bei der Migration von Anwendungsquellcode zu JAX-WS bietet.

Verwenden Sie diese Option, wenn die Anwendung die Anforderungen des JAX-RPC-Konvertierungstools erfüllt. Dieses Tool konvertiert nur binäre Archive.

Verwenden Sie diese Option, wenn Sie über einige JAX-RPC-Web-Services verfügen und die Anwendung die Anforderungen des JAX-RPC-Konvertierungstools nicht erfüllt.

Verwenden Sie diese Option, wenn Ihre JAX-RPC-Web-Services bereits in Axis 1 ausgeführt werden.

Verwenden Sie diese Option, wenn Ihre JAX-RPC-Web-Services bereits in WebSphere Application Server Traditional ausgeführt werden oder wenn Sie viele JAX-RPC-Web-Services haben, die noch nicht in Axis 1 ausgeführt werden.

Migration von JAX-RPC-Webdiensten zu JAX-WS-Webdiensten mit dem JAX-RPC Source Migration Helper

JAX-RPC Source Migration Helper ist unter IBM Application Modernization Accelerator Developer Tools verfügbar. Dieses Tool hilft bei der Umwandlung von alten JAX-RPC-Diensten in JAX-WS im Quellcode der Anwendung. Für weitere Informationen siehe Application Modernization Accelerator Developer Tools überblick.

JAX-RPC-Web-Services mit dem JAX-RPC-Konvertierungstool zu JAX-WS-Web-Services migrieren

Laden Sie das JAX-RPC-Konvertierungstool von WebSphere Liberty JAX-RPC Konvertierungstool für Maven und Gradle, um das Binärarchiv zu migrieren.

Informationen zur Migration von Anwendungen von JAX-RPC auf JAX-WS mit dem JAX-RPC-Konvertierungstool finden Sie unter JAX-RPC-Anwendungen mit Maven auf Liberty migrieren oder JAX-RPC-Anwendungen mit Gradle auf Liberty migrieren in der Onlinedokumentation.

JAX-RPC-Web-Services manuell zu JAX-WS-Web-Services migrieren

Informationen zur Migration von Anwendungen von JAX-RPC auf JAX-WS finden Sie in der Onlinedokumentation unter Migrationsszenarios für Web-Services: JAX-RPC auf JAX-WS und JAXB.

Weitere Informationen zu den Unterschieden zwischen JAX-RPC und JAX-WS finden Sie unter Implementierungsmodell für JAX-WS-Anwendungen.

JAX-RPC-Engine von Apache Axis 1 in Liberty verwenden

Wenn Sie Axis 1 bereits verwenden und in Liberty verwenden möchten, müssen Sie die Axis 1-Bibliotheken in den Liberty-Klassenpfad einschließen.

Wenn Sie ein integriertes JAX-RPC verwenden, können Sie Ihre Web-Services für die Verwendung von Axis 1 konvertieren. Im folgenden Verfahren wird beschrieben, wie ein Web-Service von Red Hat JBoss zu Axis 1 migriert wird.

  1. Laden Sie die Axis 1.0-Bibliotheken von Apache-Website herunter.
    Anmerkung: Axis 2.0 verwendet JAX-WS und unterstützt keine JAX-RPC-Web-Services.
  2. Schließen Sie die Axis-Bibliotheken in den Klassenpfad ein. Sie können die Bibliotheken in den Serverklassenpfad oder in das Verzeichnis WEB-INF/lib der Anwendung einschließen.
  3. Entfernen Sie die Referenz auf den Web-Service aus der Datei web.xml.
  4. Fügen Sie der Datei web.xml die Axis-Admin-Servlets hinzu. Beispiele für die Datei web.xml finden Sie unter Erweiterte Installation: Axis zu Ihrer eigenen Webanwendung hinzufügen auf der Apache-Website.
  5. Generiert mit dem folgenden Befehl aus der WSDL-Datei die Web-Services erneut:

       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>

    Weitere Informationen zu diesem Befehl finden Sie in WSDL2Java Referenz auf der Apache-Website.

  6. Erstellen Sie einen Axis-Implementierungsdeskriptor, indem Sie eine XML-Datei mit dem Namen server-config.wsdd im Verzeichnis WEB-INF erstellen.

    Weitere Informationen zu WSDD-Konfigurationselementen finden Sie unter Implementierungsreferenz (WSDD) auf der Apache-Website.

  7. Passen Sie den Client-Code an die neue Umgebung an. Da der Server nicht als Container verwendet wird, können keine JNDI-Referenzen verwendet werden. JNDI-Referenzen müssen entfernt und durch direkte Referenzen auf die URL ersetzt werden.

    Die folgende Methode enthält beispielsweise eine JNDI-Suche:


    public DemoType getService() throws Exception {

    javax.naming.InitialContext ctx = new javax.naming.InitialContext();

    DemoService service = (DemoService)ctx.lookup("java:comp/env/service/Demo");

    return service.getDemoService();
    }

    Die Suche muss ersetzt werden:

    private com.ibm.demo.webservices.server.DemoType getService() throws Exception {

    com.ibm.demo.webservices.server.DemoService_ServiceLocator service = new com.ibm.demo.webservices.server.DemoService_ServiceLocator();

    com.ibm.demo.webservices.server.DemoType demoType = service.getDemoService();

    return demoType;

    }

WebSphere Application Server Traditional mit der zugehörigen nativen JAX-RPC-Engine verwenden

Wenn Sie die JAX-RPC-Engine von WebSphere Application Server verwenden möchten, müssen Sie WebSphere Application Server Traditional verwenden. JAX-RPC wird von Liberty nicht unterstützt. Wenn Sie Liberty verwenden möchten, müssen Sie eine der anderen Optionen auswählen.

Nur Konfiguration

Wenn JAX-RPC-Konfigurationsdateien gefunden werden, aber die JAX-RPC-Java-API in dieser Anwendung nicht verwendet wird, können die Konfigurationsdateien aus einer vorherigen Verwendung der JAX-RPC-Technologie stammen, die nicht mehr erforderlich ist. Die nicht verwendete Konfiguration kann entfernt werden.