JAX-RPC-Implementierung bereitgestellt, aber nicht verwendet

Die Validierung des JAX-RPC-Konvertierungstools hat festgestellt, dass ein JAX-RPC-Web-Service in diesem Scan ein guter Kandidat für die Binärkonvertierung in JAX-WS mit dem JAX-RPC-Konvertierungstool ist. In Ihrer Anwendung wurde eine Implementierung für JAX-RPC gefunden. Sie können die in der Anwendung bereitgestellte JAX-RPC-Implementierung ohne Codeänderungen weiterhin verwenden. 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 vier Optionen im Hinblick auf Faktoren verglichen, die sich auf Ihr Projekt auswirken können.

Projektfaktoren

Option 1

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

Option 2

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

Option 3

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

Option 4

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. 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.

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

Niedrig

Wenn die Anwendung die Validierung für das JAX-RPC-Konvertierungstool bestanden hat, können die JAX-RPC-Services vom Tool in JAX-WS-Web-Services konvertiert 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.

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

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 die Anwendung die Anforderungen des JAX-RPC-Konvertierungstools erfüllt.

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.

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 herunter.

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.