Erweiterungen für JAX-RPC-Web-Service-Clients implementieren
WebSphere Application Server stellt Erweiterungen für Web-Service-Clients bereit, die das Programmiermodell JAX-RPC (Java™ API for XML-based RPC) verwenden.
Informationen zu diesem Vorgang
Sie können Web-Services mit den folgenden Erweiterungen für das Programmiermodell JAX-RPC anpassen.
Vorgehensweise
- Setzen Sie die Eigenschaften REQUEST_SOAP_HEADERS und RESPONSE_SOAP_HEADERS
in einem JAX-RPC-Client-Stub, um einem Web-Service-Client das Senden oder Abrufen von impliziten SOAP-Headern zu ermöglichen. Ein impliziter SOAP-Header ist ein SOAP-Header, der nicht explizit in der WSDL-Datei definiert ist. Auf eine implizite SOAP-Header-Datei passt eine der folgenden Beschreibungen:
- Ein Nachrichtenabschnitt, der in der Bindung in der WSDL-Datei als SOAP-Header deklariert ist, dessen Nachrichtendefinition aber nicht von einem Element "portType" in einer WSDL-Datei referenziert wird.
- Ein Element, das nicht in der WSDL-Datei enthalten ist.
Handler- und Serviceendpunkte können implizite oder explizite SOAP-Header mit dem SAAJ-Datenmodell (SOAP with Attachments API for Java) bearbeiten.
Wie Sie Ihren Clientcode so ändern können, dass er Transport-Header sendet oder empfängt, können Sie in den Informationen zum Senden und Empfangen impliziter SOAP-Header mit JAX-RPC nachlesen.
- Setzen Sie die Eigenschaften REQUEST_TRANSPORT_PROPERTIES und RESPONSE_TRANSPORT_PROPERTIES, um
einem Web-Service-Client das Senden und Abrufen von Transport-Headern zu ermöglichen.
Legen Sie die Eigenschaften im Stub- oder Call-Objekt fest.
Wenn Sie Ihren Clientcode ändern, um Transport-Header zu senden oder zu empfangen, können Sie in den Transport-Headern abgehender Anforderungen bzw. eingehender Antworten vom Server bestimmte Informationen senden bzw. empfangen. Für Anforderungen oder Antworten, die den HTTP-Transport verwenden, werden die Informationen in einem HTTP-Header gesendet bzw. empfangen. Für Anforderungen oder Antworten, die den JMS-Transport (Java Message Service) verwenden, werden die Informationen in einer JMS-Nachrichteneigenschaft gesendet bzw. empfangen.
Wie Sie Ihren Clientcode so ändern können, dass er Transport-Header sendet oder empfängt, können Sie in den Informationen zum Senden und Abrufen von Transport-Headern mit JAX-RPC nachlesen.
Wie Sie einen Web-Service-Client für das Senden oder Abrufen von Transport-Headern aktivieren, können Sie in den Informationen zu den bewährten Verfahren für Transport-Header-Eigenschaften nachlesen.
- Implementieren Sie Unterstützung für Methoden vom Typ javax.xml.rpc.ServiceFactory.loadService(). Die loadService-Methoden erstellen auf implementierungsspezifische Weise eine Instanz der generierten Serviceimplementierungsklasse. Die loadService-Methoden sind neu in JAX-RPC 1.1 und enthalten drei Signaturen:
- public.javax.xml.rpc.Service loadService (Class serviceInterface)
Gemäß Beschreibung in der JAX-RPC-Spezifikation gibt diese Methode die generierte Serviceimplementierung für die Serviceschnittstelle zurück. Sie finden die Spezifikation JAX-RPC in der Dokumentation zu den Web-Service-Spezifikationen und -APIs.
- public.javax.xml.rpc.Service loadService (URL wsdlDocumentLocation,
Class serviceInterface, Properties properties)Diese Methode verhält sich wie loadService (Klasse serviceInterface), weil die folgenden Parameter ignoriert werden:
- wsdlDocumentLocation
- properties
- public.javax.xml.rpc.Service loadService (URL wsdlDocumentLocation,
QName serviceName, Properties properties)
Diese Methode gibt basierend auf optionalen Namespace/Paket-Zuordnungsinformationen die generierte Serviceimplementierung für den angegebenen Service zurück.
- wsdlDocumentLocation - wird ignoriert
- serviceName - QName (namespace, localpart) des Service
- properties - Wenn dieser Parameter ungleich null ist, enthält er Einträge für Namespace/Paket-Zuordnungen.
Jeder Eingabeschlüssel für eine Eigenschaft ist eine Zeichenfolge, die dem Namespace entspricht.
Jeder Eingabewert für eine Eigenschaft ist eine Zeichenfolge, die dem Java-Paketnamen entspricht.
Wenn das Eigenschaftenargument einen Eintrag mit einem Schlüssel (Namespace) enthält, der dem Namespace-Abschnitt des Arguments "QName serviceName" entspricht, wird der Eintragswert (javaPackage) bei dem Versuch, die Serviceimplementierung zu lokalisieren, als Paketname verwendet.
- public.javax.xml.rpc.Service loadService (Class serviceInterface)
- Implementieren Sie die Schnittstelle CustomBinder, um konkrete angepasste Daten-Binder für einen bestimmten XML-Schematyp
(nur JAX-RPC-Anwendungen) bereitzustellen. Angepasste Daten-Binder werden verwendet, um XML-Schematypen Java-Objekten zuzuordnen. Angepasste Daten-Binder stellen Bindungen für XML-Schematypen bereit, die von der aktuellen JAX-RPC-Spezifikation (Java API for XML-based Remote Call Procedure) nicht unterstützt werden. WebSphere Application Server enthält eine Erweiterung für das Programmiermodell Web Services for Java 2 Enterprise Edition (Java EE), die Schnittstelle "CustomBinder", die diese angepassten Bindungen für einen bestimmten XML-Schematyp implementiert. Die Schnittstelle "CustomBinder" hat zusätzlich zu den Methoden "deserialize" und "serialize" drei Eigenschaften:
- QName für den XML-Schematyp
- QName-Geltungsbereich
- Java-Typ
Die angepassten Daten-Binder definieren Serialisierungs- und Entserialisierungsmethoden für die Umwandlung zwischen einem Java-Objekt und der Schnittstelle "SOAPElement". Ein angepasster Daten-Binder wird dem Laufzeitsystem hinzugefügt und interagiert mithilfe eines SOAPElement mit der Web-Service-Laufzeit. Sie werden der Laufzeitumgebung unter Verwendung angepasster Bindungsprovider hinzugefügt. Weitere Informationen finden Sie in der Dokumentation zu den angepassten Daten-Bindern und angepassten Bindungsprovidern. In der Dokumentation der Schnittstelle "CustomBinder" wird beschrieben, wie Sie diese Schnittstelle implementieren, um konkrete angepasste Daten-Binder für einen bestimmten XML-Schematyp bereitzustellen.
Unterartikel
Angepasste Datenbinder für JAX-RPC-Anwendungen
Ein angepasster Datenbinder wird für die Zuordnung von XML-Schematypen zu Java-Objekten verwendet. Angepasste Datenbinder stellen Bindungen für XML-Schematypen bereit, die von der aktuellen JAX-RPC-Spezifikation (Java API for XML-based Remote Call Procedure) nicht unterstützt werden.Provider für angepasste Bindungen für JAX-RPC-Anwendungen
Als Provider für angepasste Bindungen wird das Packen von angepassten Datenbinderklassen mit einer deklarativen Metadatendatei bezeichnet. Hauptaufgabe des Providers für angepasste Bindungen ist es, zugehörige angepasste Datenbinder zusammenzufassen, um bestimmte Benutzerszenarien zu unterstützen. Der Provider für angepasste Bindungen wird dazu verwendet, die angepassten Datenbinder in die Emitter-Tools und das Laufzeitsystem zu integrieren, so dass die Emitter-Tools die geeigneten Artefakte generieren können und das Laufzeitsystem sein vorhandenes Typenzuordnungssystem erhöhen kann, um die angewendeten angepassten Datenbinder wiederzugeben und aufzurufen.Schnittstelle CustomBinder für JAX-RPC-Anwendungen
WebSphere Application Server definiert eine Schnittstelle CustomBinder, das Sie für JAX-RPC-Anwendungen (Java API for XML-based Remote Call Procedure) implementieren können, um konkrete angepasste Datenbinder für einen bestimmten XML-Schematyp bereitzustellen.Verwendungsmuster für die Implementierung angepasster Datenbinder für JAX-RPC-Anwendungen
Angepasste Datenbinder werden verwendet, um XML-Schematypen Java-Objekten zuzuordnen. Angepasste Datenbinder stellen Bindungen für XML-Schematypen bereit, die von der aktuellen JAX-RPC-Spezifikation (Java API for XML-based Remote Call Procedure) nicht unterstützt werden. WebSphere Application Server enthält eine Erweiterung für das Programmiermodell Web Services for Java 2 Enterprise Edition (Java EE), die Schnittstelle "CustomBinder", die diese angepassten Bindungen für einen bestimmten XML-Schematyp implementiert. Der angepasste Bindungsprovider ist das Paket für die angepassten Daten-Binder, das in die Laufzeitumgebung importiert wird.Implizite SOAP-Header mit JAX-RPC senden
Sie können einem vorhandenen JAX-RPC-Web-Service-Client (Java API for XML-based RPC) ermöglichen, Werte in impliziten SOAP-Headern zu senden. Wenn Sie Ihren Clientcode ändern, um implizite SOAP-Header zu senden, können Sie in abgehenden Web-Service-Anforderungen bestimmte Informationen senden.Implizite SOAP-Header mit JAX-RPC empfangen
Sie können einem vorhandenen JAX-RPC-Web-Service-Client (Java API for XML-based RPC) ermöglichen, Werte in impliziten SOAP-Headern zu empfangen. Wenn Sie Ihren Clientcode ändern, um implizite SOAP-Header abzurufen, können Sie bestimmte Informationen in einer eingehenden Web-Service-Antwort empfangen.Transportheader mit JAX-RPC senden
Sie können einem vorhandenen JAX-RPC-Web-Service-Client (Java API for XML-based RPC) ermöglichen, über Transportheader anwendungsdefinierte Informationen zusammen mit Ihren Web-Service-Anforderungen zu senden.Transportheader mit JAX-RPC abrufen
Sie können einem vorhandenen JAX-RPC-Web-Service-Client (Java API for XML-based RPC) ermöglichen, Werte aus Transportheadern abzurufen. Bei HTTP-Anforderungen werden die Transportheader aus den HTTP-Headern in der HTTP-Antwortnachricht abgerufen. Bei JMS-Anforderungen (Java Message Service) werden die Transportheader aus den JMS-Nachrichteneigenschaften in der JMS-Antwortnachricht abgerufen.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_extendpm
Dateiname:twbs_extendpm.html