JAX-RPC-Web-Service-Clients implementieren

Sie können Web-Service-Clients auf der Basis der Spezifikation "Web Services for Java™ Platform, Enterprise Edition (Java EE)" und des Programmiermodells "Java API for XML-based RPC (JAX-RPC)" entwickeln.

Vorbereitende Schritte

Bewährtes Verfahren Bewährtes Verfahren: IBM® WebSphere Application Server unterstützt das Programmiermodell Java API for XML-Based Web Services (JAX-WS) und das Programmiermodell Java API for XML-based RPC (JAX-RPC). JAX-WS ist das Web-Service-Programmiermodell der nächsten Generation, das die vom Programmiermodell JAX-RPC bereitgestellte Grundlage erweitert. Durch die Verwendung des strategischen Programmiermodells JAX-WS, das ein auf Standards basierendes Annotationsmodell unterstützt, vereinfacht sich die Entwicklung von Web-Services und -Clients. Obwohl das Programmiermodell JAX-RPC und JAX-RPC-Anwendungen weiterhin unterstützt werden, sollten Sie das einfach zu implementierende Programmiermodell JAX-WS für die Entwicklung neuer Web-Service-Anwendungen und -Clients nutzen.bprac

Informationen zu diesem Vorgang

Web-Service-Clients auf der Basis des JAX-RPC-Programmiermodells entwickeln

Das Programmiermodell für Web-Service-Clients gibt Richtlinien für den Zugriff auf Web-Services in einer Java EE-Umgebung vor. Sie können Web-Services auf der Basis der Spezifikation "web Services for Java Platform, Enterprise Edition (Java EE)" und der Spezifikation "Java API for XML-based Remote Procedure Call (JAX-RPC)" erstellen. Der Anwendungsserver unterstützt EJB-Clients, Java EE-Anwendungsclients, JSP-Dateien (JavaServer Pages) und Servlets, die auf dem Programmiermodell JAX-RPC basieren.

Verwaltete und nicht verwaltete JAX-RPC-Web-Service-Clients

Der Anwendungsserver unterstützt verwaltete und nicht verwaltete Web-Service-Clients, wenn das Programmiermodell JAX-RPC verwendet wird:

  • Verwaltete Clients

    Web-Services für Java EE-Clients werden durch Java Specification Requirements (JSR) 109 definiert und sind verwaltete Clients, weil sie in einem Java EE-Container ausgeführt werden. Diese Clients werden als EAR-Dateien gepackt und enthalten Komponenten, die als Serviceanforderer agieren. Bei diesen Komponenten handelt es sich um eine Java EE-Clientanwendung, eine Webkomponente, z. B. ein Servlet oder eine JSP-Datei (JavaServer Pages), oder eine Session-EJB. Verwaltete Web-Service-Clients verwenden die JSR-109-APIs und Implementierungsinformationen, um einen Web-Service zu suchen und aufzurufen.

    Für die verwalteten Clients erfolgt der Service-Lookup über den JNDI-Lookup (Java Naming and Directory Interface). Lesen Sie die Informationen zur Konfiguration von WS-Security mit Benutzernamenstoken, WS-Security mit digitaler Signatur und WS-Security mit LTPA (Lightweight Third-Party Authentication). Der folgende Code ist ein Beispiel für eine JSR-109-konforme Kontextsuche:

    InitialContext ctx = new InitialContext();
        FredsBankServiceLocator locator
    =(FredsBankService)ctx.lookup("java:comp/env/service/FredsBankService");
        FredsBank fb = locator.getFredsBank(url);
        long balance = fb.getBalance();  

    Wenn Sie einen Kontext-Lookup für einen verwalteten Client instanziieren, verwenden Sie nicht die Methode new() für den Service Locator. Es folgt ein Beispiel, das nicht mit JSR 109 kompatibel ist (neuer Service Locator):

    Properties prop = new Properties();
        InitialContext ctx = new InitialContext(prop);
        FredsBankServiceLocator locator = new FredsBankServiceLocator();
        FredsBank fb = locator.getFredsBank(url);
        long balance = fb.getBalance(); 

    Ohne den Aufruf der Methode lookup() kann der Client nicht auf den Implementierungsdeskriptor zugreifen. Für JAX-RPC-Web-Services ist die WS-Security-Konfiguration im Web-Service-Implementierungsdeskriptor enthalten.

  • Nicht verwaltete Clients

    Clients des Typs Java Platform, Standard Edition (Java SE 6), die die JAX-RPC-Laufzeitumgebung verwenden, um Web-Services aufzurufen, und nicht in einem Java EE-Container ausgeführt werden, werden als nicht verwaltete Clients bezeichnet. Ein nicht verwalteter Web-Service-Client ist ein eigenständiger Java-Client, der eine WSDL-Datei direkt überprüfen und die Aufrufe an den Web-Service unter direkter Verwendung der JAX-RPC-APIs formulieren kann. Diese Clients werden als JAR-Dateien gepackt, die keine Implementierungsinformationen enthalten.

    Damit eine Java-Anwendung als Web-Service-Client auftreten kann, muss eine Zuordnung zwischen der WSDL-Datei und der Java-Anwendung bestehen. Für JAX-RPC-Web-Services wird die Zuordnung über die Spezifikation JAX-RPC definiert. Sie können für die Implementierung eines Web-Service eine Java-Komponente verwenden, indem Sie die Schnittstelle und die Bindungsdaten der Komponente in der WSDL-Datei angeben und die Infrastruktur des Anwendungsservers so entwerfen, dass die Serviceanforderung akzeptiert wird. Der gesamte Prozess basiert auf der Spezifikation "Web Services for Java EE". Die Spezifikation JAX-RPC definiert die Zuordnung zwischen einer WSDL-Datei, Java-Code und XML-Schematypen.

Vorgehensweise

  1. Fordern Sie das WSDL-Dokument (Web Services Description Language) für den Web-Service an, auf den Sie zugreifen möchten.

    Sie können die WSDL-Datei per E-Mail vom Service-Provider anfordern oder in einer UDDI-Registry (Universal Description, Discovery and Integration) suchen.

  2. Entwickeln Sie Clientbindungen aus einer WSDL-Datei über das Befehlszeilentool WSDL2Java. Die für den Aufruf des Web-Service erforderlichen Informationen werden generiert, einschließlich der Serviceendpunktschnittstelle und der Implementierungen, der generierten Serviceschnittstelle und der Implementierungsdeskriptoren ibm-webservicesclient-bnd.xmi und ibm-webservicesclient-ext.xmi werden generiert.
  3. Vervollständigen Sie die Clientimplementierung. Schreiben Sie den Clientanwendungscode, der für den Aufruf des Web-Service verwendet wird.
    Sehen Sie sich Kapitel 4 der Spezifikation JSR 109 an. Eine vollständige Liste der unterstützten Standards und Spezifikationen finden Sie in der Dokumentation zu den Web-Service-Spezifikationen und den Anwendungsprogrammierschnittstellen.
    Anmerkung: Wenn eine Anwendung eine Reihe von Threads im JSR-109-Client erstellt, werden die Metadaten (einschließlich der Konfiguration von WebSphere Application Server) nicht in den Thread kopiert und der globale Sicherheitshandler wird nicht aufgerufen.

    Sie können sich auch den JAX-RPC-basierten Web-Service-Beispielclient "GetQuote" in der Anwendung WebServicesSamples ansehen, der zum Download verfügbar ist. Weitere Informationen finden Sie in der Dokumentation zu den Beispielen der Version 8.0.

  4. (Optional) Assemblieren Sie eine für Web-Service aktivierte Client-JAR-Datei in einer EAR-Datei. Führen Sie diesen Schritt aus, wenn Sie einen verwalteten JAX-RPC-Web-Service-Client entwickeln, der im Java EE-Client-Container ausgeführt wird.
  5. (Optional) Assemblieren Sie eine für Web-Service aktivierte Client-WAR-Datei in einer EAR-Datei. Führen Sie diesen Schritt aus, wenn Sie einen verwalteten JAX-RPC-Web-Service-Client entwickeln, der im Java EE-Client-Container ausgeführt wird.
  6. (Optional) Konfigurieren Sie den Clientimplementierungsdeskriptor. Führen Sie diesen Schritt aus, wenn Sie einen verwalteten JAX-RPC-Client entwickeln.
  7. (Optional) Konfigurieren Sie den Implementierungsdeskriptor ibm-webservicesclient-bnd.xmi. Führen Sie diesen Schritt aus, wenn Sie einen verwalteten JAX-RPC-Client implementieren, der im Java EE-Client-Container ausgeführt wird, und Sie die Standardclienteinstellungen überschreiben möchten. Weitere Informationen zum Implementierungsdeskriptor ibm-webservicesclient-bnd.xmi finden Sie im Artikel Assemblierungseigenschaften für ibm-webservicesclient-bnd.xmi.
  8. (Optional) Implementieren Sie die Web-Service-Clientanwendung. Führen Sie diesen Schritt aus, um einen JAX-RPC-Web-Service-Client zu implementieren, der im Java EE-Client-Container ausgeführt wird.
  9. Testen Sie die für Web-Services aktivierte Clientanwendung. Sie können eine nicht verwaltete Client-JAR-Datei oder eine nicht verwaltete Clientanwendung testen.

Ergebnisse

Sie haben eine Web-Service-Clientanwendung erstellt und getestet.

Nächste Schritte

Wenn Sie einen Web-Service-Anwendungsclient entwickelt haben und der Client statisch gebunden ist, verwendet die Implementierung den Serviceendpunkt, der in der WSDL-Datei angegeben ist, die Sie während der Entwicklung verwendet haben. Während oder nach der Installation der Web-Service-Anwendung können Sie den Serviceendpunkt ändern. Für verwaltete Clients kann der Endpunkt über die Administrationskonsole oder mit dem Scripting-Tool wsadmin geändert werden.

Sie können Ihre Web-Services weiter anpassen, indem Sie Erweiterungen für Ihren Web-Service-Client implementieren. Einige Beispiele für solche Erweiterungen sind das Senden und Empfangen von Werten in SOAP-Headern, das Senden und Empfangen von HTTP- oder JMS-Transportheadern und die Verwendung angepasster Bindungen. Weitere Informationen zu diesen Erweiterungen finden Sie in der Dokumentation zur Implementierung von Erweiterungen in Web-Service-Clients.


Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_devwbsjaxrpcclient
Dateiname:twbs_devwbsjaxrpcclient.html