ホームページ  >  記事  >  Java  >  SAAJ を使用して Java で機能する SOAP クライアントを作成するにはどうすればよいですか?

SAAJ を使用して Java で機能する SOAP クライアントを作成するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-07 13:59:02684ブラウズ

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

SAAJ を使用した機能的な SOAP クライアントの提供

概要

SOAP、単純なオブジェクト アクセスプロトコルは、Web サービスの通信に広く使用されています。 Java での SOAP クライアントの実装は、特に SAAJ (SOAP with Attachments API for Java) フレームワークを利用すると簡単になります。この記事では、SAAJ で作成された SOAP クライアントの実例を示し、フレームワークを利用するためのガイダンスを提供します。

SAAJ for SOAP クライアント

SAAJ は、包括的な API セットを提供します。 SOAP メッセージを処理するため。これにより、開発者は SOAP メッセージを直接作成、送信、受信できるようになり、Web サービスとの対話に柔軟性が提供されます。 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 コンパイラを使用してコンパイルします。コンパイルされたクラスを実行すると、コードで指定された Web サービスが呼び出され、都市「ニューヨーク」に関する情報が取得されます。応答はコンソールに出力されます。

結論

この包括的な記事では、SAAJ フレームワークを使用して Java に SOAP クライアントを実装するためのガイダンスを提供します。 Web サービスを呼び出す SOAP クライアントを示す実際の例は、独自の SOAP ベースのソリューションを構築するための参考として使用できます。 SAAJ の機能を活用することで、開発者はさまざまな Web サービスとシームレスに対話する堅牢な SOAP クライアントを作成できます。

以上がSAAJ を使用して Java で機能する SOAP クライアントを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。