Rumah >Java >javaTutorial >Bagaimana untuk Melaksanakan Klien SOAP di Java menggunakan SAAJ?

Bagaimana untuk Melaksanakan Klien SOAP di Java menggunakan SAAJ?

DDD
DDDasal
2024-11-08 22:54:02456semak imbas

How to Implement a SOAP Client in Java using SAAJ?

Contoh Klien SOAP Bekerja

Melaksanakan klien SOAP di Java boleh dipermudahkan dengan menggunakan rangka kerja SAAJ. Rangka kerja serba boleh ini membolehkan pembangun mengendalikan permintaan SOAP dan mesej respons secara langsung, mengatasi fungsi JAX-WS.

Untuk menggambarkan kefungsian SAAJ, pertimbangkan panggilan perkhidmatan web berikut:

import javax.xml.soap.*;

public class SOAPClientSAAJ {

    public static void main(String[] args) {
        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 {
        SOAPPart soapPart = soapMessage.getSOAPPart();
        String myNamespace = "myNamespace";
        String myNamespaceURI = "http://www.webserviceX.NET";

        SOAPEnvelope envelope = soapPart.getEnvelope();
        envelope.addNamespaceDeclaration(myNamespace, myNamespaceURI);

        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 {
            SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
            SOAPConnection soapConnection = soapConnectionFactory.createConnection();

            SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(soapAction), soapEndpointUrl);
            soapResponse.writeTo(System.out);
            System.out.println();

            soapConnection.close();
        } catch (Exception e) {
            System.err.println("Error sending SOAP Request. Ensure correct endpoint URL and SOAPAction.");
            e.printStackTrace();
        }
    }

    private static SOAPMessage createSOAPRequest(String soapAction) throws Exception {
        MessageFactory messageFactory = MessageFactory.newInstance();
        SOAPMessage soapMessage = messageFactory.createMessage();

        createSoapEnvelope(soapMessage);
        MimeHeaders headers = soapMessage.getMimeHeaders();
        headers.addHeader("SOAPAction", soapAction);
        soapMessage.saveChanges();

        soapMessage.writeTo(System.out);
        System.out.println();

        return soapMessage;
    }

}

Contoh komprehensif ini menunjukkan panggilan perkhidmatan web SOAP menggunakan SAAJ. Ubah suai parameter agar sesuai dengan keperluan perkhidmatan web khusus anda dan ingat untuk mengubah kandungan kaedah createSoapEnvelope() untuk menyesuaikan kandungan sampul SOAP.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Klien SOAP di Java menggunakan SAAJ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn