>  기사  >  Java  >  Java에서 SAAJ를 사용하여 기능적 SOAP 클라이언트를 구축하는 방법은 무엇입니까?

Java에서 SAAJ를 사용하여 기능적 SOAP 클라이언트를 구축하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-08 21:21:02545검색

How to Build Functional SOAP Clients with SAAJ in Java?

SAAJ를 사용하여 작동하는 SOAP 클라이언트 구현

Java에서는 SOAP with Attachments API를 사용하여 SOAP(Simple Object Access Protocol)를 구현할 수 있습니다. Java(SAAJ) 프레임워크용. 이 프레임워크를 사용하면 개발자는 타사 웹 서비스 API에 의존하지 않고 SOAP 메시지를 직접 처리할 수 있습니다.

SAAJ를 사용하여 SOAP 클라이언트 생성

아래는 다음의 예입니다. SAAJ를 사용하여 구현된 작동하는 SOAP 클라이언트:

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

            // Send SOAP message to SOAP server
            SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(soapAction), soapEndpointUrl);

            // Print the SOAP response
            System.out.println("Response SOAP Message:");
            soapResponse.writeTo(System.out);
            soapConnection.close();
        } catch (Exception e) {
            System.err.println("Error occurred while sending SOAP Request to Server!");
            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();
        return soapMessage;
    }

}

위 내용은 Java에서 SAAJ를 사용하여 기능적 SOAP 클라이언트를 구축하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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