【发布时间】:2016-05-23 13:53:19
【问题描述】:
对于 SOAP,与 REST 一样,我是否可以安全地假设最终客户端调用 Web 服务所做的所有事情都是将一些 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)
【问题讨论】:
-
是的,可以使用手动方法,但是由于冗长且容易出错,不建议这样做。
标签: java web-services soap groovy wsdl