ホームページ > Java > &#&チュートリアル > Java で SAAJ を使用して動作する SOAP クライアントを作成するにはどうすればよいでしょうか?

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

DDD
リリース: 2024-11-13 11:24:02
オリジナル
832 人が閲覧しました

How can you create a working SOAP client using SAAJ in Java?

SOAP クライアントの動作例

概要

SOAP は、Web 上で XML ベースのメッセージを交換するために広く使用されているプロトコルです。 SOAP クライアントの実装は、特に初心者にとっては困難な作業となる場合があります。この記事は、SAAJ (SOAP with Attachments API for Java) フレームワークを利用して、Java で動作する SOAP クライアントの簡単で実用的な例を提供することを目的としています。

SAAJ: SOAP with Attachments API for Java

SAAJ は、SOAP メッセージを直接処理するための Java 内のフレームワークです。これにより、開発者は JAX-WS を使用せずに SOAP メッセージを作成および解析できるようになります。 SAAJ は、SOAP メッセージを操作するための簡素化されたインターフェイスを提供しており、SOAP クライアントの作成に最適です。

実際の SOAP クライアントの例

次のコード スニペットは、実際の SOAP クライアントの例を示しています。 SAAJ を使用した SOAP クライアントの例。このクライアントは Web サービスを呼び出して、特定の都市に関する情報を取得します。

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 {
        // Create SOAP Envelope and Namespace
        SOAPPart soapPart = soapMessage.getSOAPPart();
        String myNamespace = "myNamespace";
        String myNamespaceURI = "http://www.webserviceX.NET";
        
        SOAPEnvelope envelope = soapPart.getEnvelope();
        envelope.addNamespaceDeclaration(myNamespace, myNamespaceURI);
        
        // Create SOAP Body and Request Content
        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 and Message
            SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
            SOAPConnection soapConnection = soapConnectionFactory.createConnection();
            SOAPMessage soapMessage = createSOAPRequest(soapAction);

            // Send SOAP Message and Receive Response
            SOAPMessage soapResponse = soapConnection.call(soapMessage, soapEndpointUrl);
            soapResponse.writeTo(System.out);

            soapConnection.close();
        } catch (Exception e) {
            System.err.println("Error sending SOAP Request!");
            e.printStackTrace();
        }
    }

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

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

        soapMessage.saveChanges();
        
        return soapMessage;
    }

}
ログイン後にコピー

例の実行

この例を実行するには、Java がインストールされている必要がありますあなたのシステム上で。コード スニペットを .java 拡張子の付いたファイルとして保存し、javac を使用してコンパイルし、java で実行します。このコードは Web サービスを呼び出して都市「ニューヨーク」に関する情報を取得し、その応答がコンソールに表示されます。

追加メモ

  • この例では、デモンストレーションの目的で単純な Web サービスを使用します。これを変更して、他の SOAP Web サービスを呼び出すことができます。
  • SAAJ は Java 11 から削除されたため、新しいバージョンの Java を使用する場合は、代替フレームワークまたはライブラリを使用する必要がある場合があります。

この例に従い、SAAJ を使用した SOAP メッセージの構築と処理の概念を理解することで、自信を持って独自のアプリケーション用の SOAP クライアントを構築できます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート