Heim > Java > javaLernprogramm > Hauptteil

Wie kann ich mit SAAJ einen funktionsfähigen SOAP-Client in Java erstellen?

Linda Hamilton
Freigeben: 2024-11-07 13:59:02
Original
688 Leute haben es durchsucht

How can I create a functional SOAP client in Java using SAAJ?

Bereitstellung eines funktionalen SOAP-Clients mit SAAJ

Einführung

SOAP, der einfache Objektzugriff Protokoll, wird häufig für die Kommunikation von Webdiensten verwendet. Die Implementierung von SOAP-Clients in Java kann unkompliziert sein, insbesondere mit Hilfe des SAAJ-Frameworks (SOAP with Attachments API for Java). Dieser Artikel stellt ein funktionierendes Beispiel eines mit SAAJ erstellten SOAP-Clients vor und bietet Anleitungen zur Verwendung des Frameworks.

SAAJ für SOAP-Clients

SAAJ bietet einen umfassenden Satz von APIs zur Verarbeitung von SOAP-Nachrichten. Es ermöglicht Entwicklern das direkte Erstellen, Senden und Empfangen von SOAP-Nachrichten und bietet so Flexibilität bei der Interaktion mit Webdiensten. SAAJ ist Teil des Standard-Java SE und somit für Entwicklungszwecke leicht verfügbar.

Beispiel für einen funktionierenden SOAP-Client

Der folgende Codeausschnitt zeigt einen funktionsfähigen SOAP-Client, der SAAJ verwendet :

import javax.xml.soap.*;

public class SOAPClientSAAJ {

    // SAAJ - SOAP Client Testing
    public static void main(String args[]) {
        // SOAP Endpoint URL and SOAP Action
        String soapEndpointUrl = "http://www.webservicex.net/uszip.asmx";
        String soapAction = "http://www.webserviceX.NET/GetInfoByCity";

        callSoapWebService(soapEndpointUrl, soapAction);
    }

    private static void createSoapEnvelope(SOAPMessage soapMessage) throws SOAPException {
        // Namespace and URI
        String myNamespace = "myNamespace";
        String myNamespaceURI = "http://www.webserviceX.NET";

        // SOAP Envelope
        SOAPPart soapPart = soapMessage.getSOAPPart();
        SOAPEnvelope envelope = soapPart.getEnvelope();
        envelope.addNamespaceDeclaration(myNamespace, myNamespaceURI);

        // SOAP Body
        SOAPBody soapBody = envelope.getBody();
        SOAPElement soapBodyElem = soapBody.addChildElement("GetInfoByCity", myNamespace);
        SOAPElement soapBodyElem1 = soapBodyElem.addChildElement("USCity", myNamespace);
        soapBodyElem1.addTextNode("New York");
    }

    private static void callSoapWebService(String soapEndpointUrl, String soapAction) {
        try {
            // Create SOAP Connection
            SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
            SOAPConnection soapConnection = soapConnectionFactory.createConnection();

            // SOAP Message and SOAP Request
            SOAPMessage soapRequest = createSOAPRequest(soapAction);

            // Send SOAP Message and Receive Response
            SOAPMessage soapResponse = soapConnection.call(soapRequest, soapEndpointUrl);

            // Print Response
            soapResponse.writeTo(System.out);

            // Close Connection
            soapConnection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static SOAPMessage createSOAPRequest(String soapAction) throws Exception {
        // Message Factory and SOAP Message
        MessageFactory messageFactory = MessageFactory.newInstance();
        SOAPMessage soapMessage = messageFactory.createMessage();

        // Create Soap Envelope
        createSoapEnvelope(soapMessage);

        // Set MIME Headers and Soap Action
        MimeHeaders headers = soapMessage.getMimeHeaders();
        headers.addHeader("SOAPAction", soapAction);

        // Save Changes and Print Request
        soapMessage.saveChanges();
        soapMessage.writeTo(System.out);

        return soapMessage;
    }

}
Nach dem Login kopieren

Ausführen des Beispiels

Um dieses Beispiel auszuführen, platzieren Sie es in einer Datei namens SOAPClientSAAJ.java und kompilieren Sie es mit einem Java-Compiler. Führen Sie die kompilierte Klasse aus und sie ruft den im Code angegebenen Webdienst auf, um Informationen über die Stadt „New York“ abzurufen. Die Antwort wird auf der Konsole gedruckt.

Fazit

Dieser umfassende Artikel bietet Anleitungen zur Implementierung von SOAP-Clients in Java mithilfe des SAAJ-Frameworks. Das Arbeitsbeispiel, das einen SOAP-Client zeigt, der einen Webdienst aufruft, kann als Referenz für die Erstellung Ihrer eigenen SOAP-basierten Lösungen verwendet werden. Mithilfe der Funktionen von SAAJ können Entwickler robuste SOAP-Clients erstellen, die nahtlos mit verschiedenen Webdiensten interagieren.

Das obige ist der detaillierte Inhalt vonWie kann ich mit SAAJ einen funktionsfähigen SOAP-Client in Java erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!