JavaでSOAPメッセージを送信する方法

Apache Axis や JAX-WS といった Java の SOAP ライブラリを使用することで、Java で SOAP メッセージを送信することができます。以下に、Apache Axis を使って SOAP メッセージを送信するサンプルコードを示します。

まず、Apache Axis のライブラリの依存関係を追加する必要があります。Maven を使用している場合は、pom.xml ファイルに次の依存関係を追加する必要があります。

<dependencies>
    <dependency>
        <groupId>org.apache.axis</groupId>
        <artifactId>axis</artifactId>
        <version>1.4</version>
    </dependency>
</dependencies>

次に示すコードを使用してSOAPメッセージを送信できます

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;

public class SOAPClient {
    public static void main(String[] args) {
        try {
            // 创建Service对象
            Service service = new Service();
            Call call = (Call) service.createCall();

            // 设置服务端的URL
            String endpoint = "http://example.com/soap-endpoint";
            call.setTargetEndpointAddress(new java.net.URL(endpoint));

            // 设置SOAP操作的命名空间、方法名和参数
            String namespace = "http://example.com/soap-namespace";
            String operationName = "exampleOperation";
            call.setOperationName(new QName(namespace, operationName));

            // 设置SOAP操作的参数
            call.addParameter("param1", org.apache.axis.Constants.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
            call.addParameter("param2", org.apache.axis.Constants.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
            call.setReturnType(org.apache.axis.Constants.XSD_STRING);

            // 调用SOAP操作并接收返回结果
            String param1Value = "value1";
            String param2Value = "value2";
            Object result = call.invoke(new Object[]{param1Value, param2Value});

            // 处理返回结果
            System.out.println("SOAP response: " + result);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

上記のサンプルコードでは、endpoint、namespace、operationName を実際の SOAP サービスの URL、名前空間、操作名に置き換える必要があります。その後、call.addParameter メソッドを呼び出して SOAP 操作のパラメータを設定し、call.setReturnType メソッドを呼び出して戻り値の型を設定します。最後に、call.invoke メソッドを呼び出して SOAP メッセージを送信し、結果を受け取ります。

実際の使用では、異常な処理や複雑なSOAPメッセージの処理が必要になる場合があるため、コードの例はあくまで例であることに注意してください。

bannerAds