在Java中发送SOAP请求有多种方法,其中一种常用的方法是使用JAX-WS(Java API for XML Web Services)。
下面是一个简单的示例代码,演示如何使用JAX-WS发送SOAP请求:
import javax.xml.soap.*;
public class SoapClient {
public static void main(String[] args) {
try {
// 创建SOAP连接
SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
SOAPConnection soapConnection = soapConnectionFactory.createConnection();
// 创建SOAP消息
MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage soapMessage = messageFactory.createMessage();
// 创建SOAP消息的部分
SOAPPart soapPart = soapMessage.getSOAPPart();
SOAPEnvelope soapEnvelope = soapPart.getEnvelope();
SOAPBody soapBody = soapEnvelope.getBody();
// 添加SOAP消息体内容
soapBody.addBodyElement(soapEnvelope.createName("HelloWorld", "ns", "http://www.example.org"));
// 设置SOAP地址
String url = "http://localhost:8080/HelloWorldService";
SOAPMessage response = soapConnection.call(soapMessage, url);
// 处理SOAP响应
SOAPBody responseBody = response.getSOAPBody();
System.out.println("Response: " + responseBody.getTextContent());
// 关闭SOAP连接
soapConnection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在上面的示例中,我们首先创建了一个SOAP连接,然后创建了一个SOAP消息,并设置了SOAP消息体内容。接着我们指定了SOAP服务器的地址,最后发送SOAP请求并处理响应。
请注意,以上示例是一个简单的演示,实际项目中可能需要更复杂的SOAP消息结构和处理逻辑。您可以根据具体需求进行调整和扩展。