要在Java中發送SOAP消息,你可以使用Java的SOAP庫,如Apache Axis或JAX-WS。以下是使用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消息等。