0

在我的项目中,我们使用 webservices 。让我感到困惑的是,有一些 web 服务(比如A)仅HttpURLConnection使用

还有另一个 Web 服务(比如B),我看到许多带有 JAX WSRI 的类,它不被称为 using HttpURLConnection。我还看到了这些 Web 服务的 .wsdl 文件。

/**
* This class was generated by the JAX-WS RI.
* JAX-WS RI 2.1.1 in JDK 6
* Generated source version: 2.0
* 
*/

@WebService(name = "ABPortType",     targetNamespace        "http://www.ups.com/WSDL/XOLTWS/DCR/v1.0")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
public interface ABCPortType {
@WebMethod(operationName = "ProcessAB", action  =      =   "http://example.com/webservices/xxBinding/v1.0")
@WebResult(name = "xxResponse", targetNamespace =    "http://xx.com/XMLSchema/XXWS/AB/v1.0", partName = "Body")

}

我的疑问是

  1. 为什么我们B用所有这些额外的膨胀来调用 web 服务(端点,JAX WS RI 而不是使用HttpURLConnection?

  2. 可以HttpULConnection用来调用这个webserviceB

  3. 对于使用调用的 web 服务 A,HttpURLConnection没有 WSDL(只是从 xsd 创建的 jaxb 类),但是使用 JAXWS RI 生成的类调用的 WS 具有 WSDL。Web 服务 A 和 B 是否以不同的方式实现,这就是我们以不同方式调用它们的原因

请帮我理解

-文卡特

4

1 回答 1

0

按照你提问的顺序:

  1. 如果您使用JAX-WS API,您可能希望从 WebService 生成客户端代理类,例如使用wsimport从 WSDL 文档文件生成客户端存根的工具。这样您就可以使用 Java 对象而不是 XML。只有在特殊情况下,您才需要一个用于高级功能的 XML 处理程序,例如 WS-Security。

  2. 是的。您需要直接使用 XML 并使用 JAX-B 来编组/解组消息。

  3. WSDL 文档文件描述了 SOAP 服务和服务中所有可用操作的签名。如果A没有描述符(WSDL 文档文件),则可能不使用 JAX-WS API,例如 Java WSDP,或者服务提供者没有公开 WSDL。

于 2013-08-08T18:02:34.660 回答