对于 SOAP,我们是否需要从 WSDL 生成客户端存根?
For SOAP, do we need to generate client stubs from WSDL?
与 REST 一样,对于 SOAP,我可以安全地假设最终客户端调用 Web 服务所做的所有事情都是 post 一些 XML 到端点 URL?如果是这种情况,那么是否需要使用像 Axis 或 wsimport 这样的工具从 WSDL 生成客户端存根 类?
跳过这一步,自己构建原始 XML 并对整个 SOAP 信封执行 HTTP Post 有什么问题吗?
这是我想在 groovy 中做的事情。
def myXml = "<soapenv:Envelope>" +
" <soapenv:Body>" +
" <myservice:invoke>" +
" <username xsi:type=\"xsd:string\">$username</username>" +
" <apiKey xsi:type=\"xsd:string\">$apiKey</apiKey>" +
" </myservice:invoke>" +
" </soapenv:Body></soapenv:Envelope>"
HttpMethod method = new PostMethod('https://myservice.javaguy.com/Service.asmx')
method.setRequestEntity(new StringRequestEntity(myXml))
method.setRequestHeader('Content-type','text/xml')
def responseCode = httpClient.executeMethod(method)
语句"SOAP, as a REST"没有任何意义。 REST 是一种架构风格。 SOAP 是一种不符合 REST 标准的 Web 服务协议。可以通过 HTTP 调用 SOAP 服务。
如果使用 SOAP over HTTP,那么可以通过将 SOAP 消息发布到正确的资源来调用 SOAP。在下面链接的 SOAP 维基百科页面上有一个这样做的合理示例。
https://en.wikipedia.org/wiki/SOAP#Example_message
避免使用 WSDL 客户端生成器并构建您自己的 SOAP 客户端并没有错。生成器只是为了让您更轻松地执行此操作。生成的客户端将为您管理 HTTP 客户端、deserialization/serialization 逻辑、SOAP 异常处理和转换。如果您决定不使用它们,那么您将不得不自己编写该逻辑。
与 REST 一样,对于 SOAP,我可以安全地假设最终客户端调用 Web 服务所做的所有事情都是 post 一些 XML 到端点 URL?如果是这种情况,那么是否需要使用像 Axis 或 wsimport 这样的工具从 WSDL 生成客户端存根 类?
跳过这一步,自己构建原始 XML 并对整个 SOAP 信封执行 HTTP Post 有什么问题吗?
这是我想在 groovy 中做的事情。
def myXml = "<soapenv:Envelope>" +
" <soapenv:Body>" +
" <myservice:invoke>" +
" <username xsi:type=\"xsd:string\">$username</username>" +
" <apiKey xsi:type=\"xsd:string\">$apiKey</apiKey>" +
" </myservice:invoke>" +
" </soapenv:Body></soapenv:Envelope>"
HttpMethod method = new PostMethod('https://myservice.javaguy.com/Service.asmx')
method.setRequestEntity(new StringRequestEntity(myXml))
method.setRequestHeader('Content-type','text/xml')
def responseCode = httpClient.executeMethod(method)
语句"SOAP, as a REST"没有任何意义。 REST 是一种架构风格。 SOAP 是一种不符合 REST 标准的 Web 服务协议。可以通过 HTTP 调用 SOAP 服务。
如果使用 SOAP over HTTP,那么可以通过将 SOAP 消息发布到正确的资源来调用 SOAP。在下面链接的 SOAP 维基百科页面上有一个这样做的合理示例。 https://en.wikipedia.org/wiki/SOAP#Example_message
避免使用 WSDL 客户端生成器并构建您自己的 SOAP 客户端并没有错。生成器只是为了让您更轻松地执行此操作。生成的客户端将为您管理 HTTP 客户端、deserialization/serialization 逻辑、SOAP 异常处理和转换。如果您决定不使用它们,那么您将不得不自己编写该逻辑。