Diese Regel erkennt das Vorhandensein von JAX-RPC-Web-Services anhand der folgenden Kriterien:
- Vorhandensein der Datei web-services.xml
- Vorhandensein der Datei weblogic-webservices.xml und der Datei
webservices.xml in demselben Ordner
Manuelle Lösung
Um JAX-RPC-Webdienste auf der Grundlage von WebLogic J2EE Webdienst-Bereitstellungsdeskriptoren zu generieren, müssen Sie manuell ein Ant Skript erstellen, das bestimmte IBM® Ant aufgaben. Das Skript sollte in das Stammverzeichnis des Projekts eingefügt werden, wenn nicht bereits eine IBM Ant -generierte Datei vorhanden ist. Diese Aufgaben werden die Generierung der JAX-RPC-Webdienste aus den Bereitstellungsdeskriptoren.
Regeleigenschaften
Sie müssen die richtigen Werte für die Regeleigenschaften angeben, um genaue Ergebnisse bei der Analyse zu gewährleisten. Diese Eigenschaften sollten überprüft und je nach dem Kontext Ihrer Anwendung entsprechend konfiguriert werden. Die Eigenschaften für diese Regel sind im Folgenden erläutert:
- name des generierten Ant-Scripts
:
Gibt den Namen des neu erstellten Skripts Ant an. Der Skript name muss ein gültiger Dateiname sein. Der Wert darf keine Vorwärts- oder Rückwärtsschrägstriche enthalten. Das Skript wird im Stammordner des Projekts gespeichert.
Standardwert: build-ibm-ws.xml
- Name des Generierungsordners:
Gibt den Namen des Ordners an, in dem die Generierungsartefakte gespeichert werden sollen; Der Wert darf keine Vorwärts- oder Rückwärtsschrägstriche enthalten. Der Generierungsordner wird im Stammordner des Projekts erstellt.
Standardwert: ibm-ws-gen.xml
Ant-Klassenpfad
Der Ant-Klassenpfad wird über das Eclipse-Projekt ermittelt.
Es muss unbedingt sichergestellt werden,
dass alle für die Kompilierung erforderlichen Elemente im Eclipse-Klassenpfad enthalten sind.
In der Datei web-services.xml definierte JAX-RPC-Services
Basierend auf den Informationen und dem Typ der definierten Services in der Datei
web-services.xml werden ein Ant-Script und möglicherweise zusätzlicher
Java-Code, der die Web-Service-Endpunktschnittstelle darstellt, für die Reproduktion des JAX-RPC-Service generiert.
- Unterstützte Komponenten
Nur Stateless Session Enterprise Beans (<stateless-ejb>) und Java (R) (<java-class>) Komponenten können erkannt und konvertiert werden.
- Stateless-EJB-Komponenten:
Die Enterprise JavaBeans (TM) (EJB) JAR-Datei, wie sie im Pfad-Attribut des <ejb-link>-Elements definiert ist, muss im Projekt vorhanden sein. Die automatische Korrektur wird scannt die EJB JAR-Datei und generiert eine neue Service Endpoint Interface (SEI)-Klasse auf der Grundlage der EJB-Remote-Klasse.
SEI-Schnittstellen unterscheiden sich von EJB-Remote-Schnittstellen dadurch dass die Klasse erweitern muss
java.rmi.Remote
, und jede Methode muss die Ausnahme auslösen,
java.rmi.RemoteException
.
Die automatische Korrektur verwendet Java reflection auf der EJB schnittstelle, um die neue SEI zu erzeugen.
Stellen Sie daher sicher, dass Ihr Eclipse Projekt-Klassenpfad alle notwendigen Klassen, JAR-Dateien und Verzeichnisse enthält, die um die entfernte EJB-Klasse erfolgreich zu laden.
Die SEI muss in dem Ordner sei innerhalb des dem Generierungsordner, wie vom Benutzer in der Regel angegeben properties. Das SEI-Paket entspricht dem EJB-Remote-Interface paket und der SEI-Name ist derselbe wie der der EJB-Remote-Schnittstelle mit dem angehängten Wort SEI. Darüber hinaus wird der neue SEI-Ordner zum Projektklassenpfad hinzugefügt.
- Java-Klassenkomponenten:
Ähnlich wie bei den EJB-Komponenten wird die automatische Korrektur eine Service-Endpunkt-Schnittstelle aus der Klasse Java, die im Attribut <Klassenname> definiert ist.
- Generierte Ant-Ziele:
Das generierte Ant Skript enthält Ziele zur die WSDL-Datei und den JAX-RPC-Dienst auf der Grundlage der neuen SEI zu generieren, die erstellt wird.
Das Ziel der WSDL-Generierung hat den Namen, genWSDL_ssss, wobei ssss der Name des JAX-RPC-Dienstes ist, der der im Attributfeld name des <web-service> elements angegeben wurde.
Die Ziele der Dienstgenerierung haben den Namen, genService_pppp, wobei pppp der Name der Komponente aus dem name attribut des Elements <stateless-ejb> oder <java-class> ist.
Die automatische Korrektur verwendet nicht die Informationen, die in anderen Elementen, wie <handlers-chain>, <types>, <Operationen>, <Sicherheit> und so weiter.
In der Datei webservices.xml definierte JAX-RPC-Services
Basierend auf den Informationen und dem Typ der definierten Services in der Datei
webservices.xml wird ein Ant-Script für die Reproduktion des JAX-RPC-Service generiert.
- Generierte Ant-Ziele:
Das generierte Ant-Script enthält Ziele, um die WSDL-Datei und den
JAX-RPC-Service zu generieren.
Das WSDL-Generierungsziel wird nur generiert, wenn sie die WSDL-Datei nicht finden können, die in dem Element definiert ist, <wsdl-datei>.
Wenn er erstellt wird, hat das WSDL-Generierungsziel den Namen genWSDL_ssss,, wobei ssss der Name des Dienstes ist, wie er im Element in dem Element <webservice-description-name> definiert ist.
Die Ziele der Dienstgenerierung haben den Namen, genService_pppp, wobei pppp der Name des Ports ist, wie er durch das element <Port-Komponenten-Name> definiert ist.
Ant-Tasks von IBM WebSphere Application Server
WebSphere(R) Application Server enthält Ant-Tasks wie java2wsdl
und wsdl2java für die Generierung der für JAX-RPC-Services erforderlichen Artefakte. Das generierte Ant-Script verwendet diese Tasks, um den Service zu erstellen.
Weitere Informationen zu diesen Tasks finden Sie im
WebSphere Application Server-Dokumentation.
Ant-Script ausführen
Sobald Sie das Skript Ant erstellt haben, zeigen Sie es an und fügen bei Bedarf weitere Anpassungen hinzu.
Informationen zu zusätzlichen Anpassungen für die IBM Ant-Tasks finden Sie in der Dokumentation zu Application Server.
Sie müssen das Script mit den Ant-Tools ausführen, die
im Lieferumfang von WebSphere Application Server enthalten sind. Das Script
IBM Ant kann wie folgt ausgeführt werden:
- mit WAS_HOME\bin\ws_ant.bat auf Windows(R)-Betriebssystemen
- mit WAS_HOME\bin\ws_ant.sh auf UNIX(R)-Betriebssystemen
Beispiel: c:\IBM\AppServer\bin\ws_ant.bat -f
c:\eclipse\MyProject\ibm-ws-gen.xml genService_TestService
Sobald die Ant Ziele ausgeführt wurden, befinden sich die erzeugten Artefakte im Generierungsordner. Der Benutzer kann dann den generierten code und die Bereitstellungsdeskriptoren prüfen und diese Artefakte zu seinen modulen hinzufügen.
Empfehlung: Erwägen Sie die Migration zu JAX-WS
Wenn Sie bereits Änderungen an Ihren JAX-RPC-Webdiensten als Teil Ihrer Migrations- oder Modernisierungsbemühungen vornehmen, empfehlen wir Ihnen dringend, einen Wechsel zu JAX-WS ( Java API für XML-Webdienste).
JAX-WS ist der Nachfolger von JAX-RPC und bietet mehrere Vorteile:
- Modernes API-Design mit besserer Unterstützung für Annotationen und Integration mit Java EE
- Verbesserte Interoperabilität mit anderen Webdienst-Frameworks und Standards
- Bessere Werkzeuge und Unterstützung in modernen Anwendungsservern und IDEs
- Langfristige Überlebensfähigkeit, da JAX-RPC als Legacy-Technologie betrachtet wird
Wenn Sie jetzt auf JAX-WS migrieren, können Sie künftige technische Schulden reduzieren und Ihre Anwendung an die aktuellen Webdienststandards Java anpassen.
Eine Anleitung für die Migration von JAX-RPC zu JAX-WS finden Sie im Dokument Webservice-Migrationsszenarien: JAX-RPC zu JAX-WS und JAXB Dokumentation.