从哲理上使用Service和Dispatch类从Java代码调用Web服务与SOAPConnection类有什么区别?

例如,如下所示:

SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance();
SOAPConnection soapConnection = scf.createConnection();
SOAPMessage reply = soapConnection.call(soapMessage, url);

与大致符合这些思路的东西?
svc = Service.create(url, serviceName);
Dispatch<SOAPMessage> dispatch = svc.createDispatch(portName, SOAPMessage.class, service.Mode.MESSAGE);
SOAPMessage reply = (SOAPMessage)dispatch.invoke(soapMessage);

这些之间有什么区别,为什么选择一种方法而不是另一种方法?

最佳答案

以下行摘录自Java SOA Cookbook-O'Reilly

“通过SOAP连接,您可以在SOAP末尾向资源发送SOAP消息。
网址。在任何情况下都可以方便使用,但是如果该服务不可行,则是必需的
具有已定义的WSDL。那是因为调用Service.create需要传入
WSDL的位置。很少有没有基于SOAP的WSDL
服务,但确实如此,您会做好准备的。

要创建不公开WSDL的Web服务的连接,可以使用
SOAPConnection类直接与远程资源进行通信。然后,您创建一个表示远程对象的URL对象。
您要调用的资源(servlet)。传递SOAP请求消息和端点
您要在连接对象上调用call方法,然后等待
它返回一个SOAP响应。

•传递给connection.call方法的端点URL可以是字符串或
一个java.net.URL。”

07-26 02:59