>Java >java지도 시간 >SAAJ를 사용하여 Java에서 기능적인 SOAP 클라이언트를 어떻게 만들 수 있나요?

SAAJ를 사용하여 Java에서 기능적인 SOAP 클라이언트를 어떻게 만들 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-11-07 13:59:02781검색

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

SAAJ를 사용하여 기능적인 SOAP 클라이언트 제공

소개

SOAP, Simple Object Access 프로토콜은 웹 서비스 통신에 널리 사용됩니다. Java에서 SOAP 클라이언트를 구현하는 것은 특히 SAAJ(Java용 SOAP with Attachments API) 프레임워크의 도움으로 간단할 수 있습니다. 이 기사에서는 SAAJ로 생성된 SOAP 클라이언트의 작업 예제를 제시하고 프레임워크 활용에 대한 지침을 제공합니다.

SOAP 클라이언트용 SAAJ

SAAJ는 포괄적인 API 세트를 제공합니다. SOAP 메시지를 처리하기 위한 것입니다. 이는 개발자가 SOAP 메시지를 직접 생성, 전송 및 수신할 수 있도록 하여 웹 서비스와 상호 작용하는 데 유연성을 제공합니다. SAAJ는 표준 Java SE의 일부이므로 개발 목적으로 쉽게 사용할 수 있습니다.

작업 SOAP 클라이언트 예제

다음 코드 조각은 SAAJ를 사용하는 기능적 SOAP 클라이언트를 보여줍니다. :

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;
    }

}

예제 실행

이 예를 실행하려면 SOAPClientSAAJ.java라는 파일에 배치하고 Java 컴파일러를 사용하여 컴파일합니다. 컴파일된 클래스를 실행하면 코드에 지정된 웹 서비스를 호출하여 "뉴욕"이라는 도시에 대한 정보를 검색합니다. 응답은 콘솔에 인쇄됩니다.

결론

이 포괄적인 기사는 SAAJ 프레임워크를 사용하여 Java에서 SOAP 클라이언트를 구현하는 방법에 대한 지침을 제공합니다. 웹 서비스를 호출하는 SOAP 클라이언트를 보여주는 작업 예제는 자신만의 SOAP 기반 솔루션을 구축하기 위한 참조로 사용될 수 있습니다. SAAJ의 기능을 활용하여 개발자는 다양한 웹 서비스와 원활하게 상호 작용하는 강력한 SOAP 클라이언트를 만들 수 있습니다.

위 내용은 SAAJ를 사용하여 Java에서 기능적인 SOAP 클라이언트를 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.