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 mit spezifischen 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.Der Wert darf keine Schrägstriche und keine umgekehrten Schrä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
Es können nur Komponenten von Stateless-Session-Enterprise-Beans (<stateless-ejb>) und Java(R)-Komponenten (<java-class>)
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 erzeugt eine neue Service Endpoint Interface (SEI)-Klasse auf der Grundlage der EJB-Remote-Klasse.
SEI-Schnittstellen unterscheiden sich von fernen EJB-Schnittstellen dadurch, dass die Klasse erweitert werden 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 WSDL-Generierungsziel hat den Namen "genWSDL_ssss", wobei ssss für den Namen des JAX-RPC-Service steht, der im Attributfeld
name des Elements <web-service> angegeben wurde.
Die Servicegenerierungsziele haben den Namen "genService_pppp", wobei pppp für den Namen der Komponente aus dem Attribut
name des Elements <stateless-ejb> bzw. <java-class> steht.
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>.
Das erstellte WSDL-Generierungsziel hat den Namen
"genWSDL_ssss", wobei ssss für den Namen des im Element
<webservice-description-name> definierten Service steht.
Die Servicegenerierungsziele haben den Namen "genService_pppp", wobei pppp für den Namen des im Element
<port-component-name> definierten Ports steht.
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
Wenn Ant-Ziele ausgeführt werden, befinden sich die erzeugten Artefakte im Generierungsordner.Sie können den generierten Code und die Implementierungsdeskriptoren überprüfen und diese Artefakte anschließend
den zugehörigen Modulen hinzufügen.