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メッセージの処理が必要になる場合があるため、コードの例はあくまで例であることに注意してください。