Unterschiede zwischen den SAAJ-Versionen
Die Schnittstelle SOAP with Attachments API for Java™ (SAAJ) Version 1.3 erweitert die Unterstützung von SOAP-Nachrichten der Version 1.2 in einer Web-Service-Umgebung. Zwischen SAAJ 1.2 und SAAJ 1.3 gibt mehrere Unterschiede, die in diesem Artikel beschrieben werden.
In einer typischen Web-Service-Umgebung stützen Sie sich bei der Übersetzung von Java-Objekten auf den zugrunde liegenden Code, der auf Java-Standards basiert. Die Schnittstelle SAAJ stellt APIs für das Lesen, Schreiben, Senden und Empfangen von SOAP-Nachrichten bereit und befürwortet das Senden binärer Inhalte als Anhang einer SOAP-Nachricht.
SAAJ 1.3 ist an SOAP-Nachrichten der Version 1.1 und 1.2 ausgerichtet und wird von den Programmiermodellen Java API for XML Web Services (JAX-WS) und Java API for XML-Based RPC (JAX-RPC) unterstützt. SAAJ 1.2 funktioniert nur mit SOAP-Nachrichten der Version 1.1.
String text = soapFault.getFaultString();
Die Methode getFaultString () gibt den Wert von "faultString" zurück, wenn die Nachricht auf
SOAP 1.1 basiert. Wenn Sie SOAP 1.2 verwenden, gibt getFaultString() den Wert von "Reason" zurück.
Darüber hinaus stellt die Schnittstelle SAAJ 1.3 eine neue Methode mit dem Namen "getReasonText (Locale)"
bereit, die einen bestimmten "Reason"-Wert abruft. Die Methode "getReasonText (Locale)"
gibt eine dokumentierte Ausnahme zurück, wenn die Nachricht auf SOAP 1.1 basiert. Die Schnittstelle SAAJ
1.3 unterstützt vorhandenen Code bei der Verarbeitung von Nachrichten, die auf SOAP 1.1 oder auf SOAP 1.2 basieren.Weitere Unterschiede zwischen SAAJ 1.2 und SAAJ 1.3 sind in der folgenden Liste aufgeführt:
- Schnittstelle SAAJMetaFactory
Die SPI SAAJMetaFactory wurde eingeführt, um die Erstellung von SOAP-Factory-Klassen an einer zentralen Stelle zu unterstützen.
- Klasse SAAJResult
Das SAAJResult-Objekt dient als Container für die Ergebnisse einer JAX-P-Umsetzung (Java API for XML Processing) oder ein JAXB-Marshaling (Java Architecture for XML Binding) in der SAAJ-Struktur. Die Klasse SAAJResult wurde eingeführt, um eine höhere Benutzerfreundlichkeit zu gewährleisten, wenn die Umsetzungsergebnisse in einer gültigen SAAJ-Struktur erwartet werden.
- Überladene Methoden, die einen QName anstelle eines Namens akzeptieren
Ein QName sollte bevorzugt einen XML-qualifizierten Namen darstellen. Deshalb wurden in allen SAAJ-APIs überladene Methoden eingeführt, bei denen eine entsprechende Methode einen Namen vom Typ javax.xml.soap.Name als Argument akzeptiert.
- Neue Methoden in den Schnittstellen und Klassen AttachmentPart, SOAPBody und SOAPElement
Diese neuen Methoden unterstützen Sie bei der Arbeit mit den neuen SOAP-Features.
- SOAPPart ist jetzt eine Methode vom Typ javax.xml.soap.Node.
Das SOAPPart-Objekt wird jetzt auch als Methode für SOAP-Knoten betrachtet.
Eine vollständige Liste der unterstützten Standards und Spezifikationen finden Sie in der Dokumentation zu den Web-Service-Spezifikationen und den Anwendungsprogrammierschnittstellen.