Java 对于SOAP,我们需要从WSDL生成客户端存根吗?
与REST一样,使用SOAP时,我是否可以安全地假设客户端调用web服务的所有操作最终都是向端点URL发布一些XML?如果是这种情况,那么是否需要使用Axis或wsimport之类的工具从WSDL生成客户机存根类 跳过这一步,自己构建原始XML并对整个SOAP信封进行HTTP Post,有什么不对吗 下面是我想在groovy中做的事情Java 对于SOAP,我们需要从WSDL生成客户端存根吗?,java,web-services,soap,groovy,wsdl,Java,Web Services,Soap,Groovy,Wsdl,与REST一样,使用SOAP时,我是否可以安全地假设客户端调用web服务的所有操作最终都是向端点URL发布一些XML?如果是这种情况,那么是否需要使用Axis或wsimport之类的工具从WSDL生成客户机存根类 跳过这一步,自己构建原始XML并对整个SOAP信封进行HTTP Post,有什么不对吗 下面是我想在groovy中做的事情 def myXml = "<soapenv:Envelope>" + " <soapenv:Body>" +
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)
def myXml=“”+
" " +
" " +
“$username”+
“$apiKey”+
" " +
" "
HttpMethod方法=新的后期方法('https://myservice.javaguy.com/Service.asmx')
setRequestEntity方法(新的StringRequestEntity(myXml))
方法setRequestHeader('Content-type','text/xml')
def responseCode=httpClient.executeMethod(方法)
声明“SOAP作为休息”没有任何意义。休息是一种建筑风格。SOAP是一种不遵守REST标准的web服务协议。可以通过HTTP调用SOAP服务
如果通过HTTP使用SOAP,那么可以通过将SOAP消息发布到正确的资源来调用SOAP。在下面链接的SOAP wikipedia页面上有一个这样做的合理示例。
避免使用WSDL客户机生成器并构建您自己的SOAP客户机没有什么错。发电机只是在那里为你做这件事,使它更容易。生成的客户端将为您处理管理HTTP客户端、反序列化/序列化逻辑、SOAP异常处理和转换。如果您决定不使用它们,那么您必须自己编写该逻辑。声明“SOAP,作为休息”没有任何意义。休息是一种建筑风格。SOAP是一种不遵守REST标准的web服务协议。可以通过HTTP调用SOAP服务
如果通过HTTP使用SOAP,那么可以通过将SOAP消息发布到正确的资源来调用SOAP。在下面链接的SOAP wikipedia页面上有一个这样做的合理示例。
避免使用WSDL客户机生成器并构建您自己的SOAP客户机没有什么错。发电机只是在那里为你做这件事,使它更容易。生成的客户端将为您处理管理HTTP客户端、反序列化/序列化逻辑、SOAP异常处理和转换。如果您决定不使用它们,那么您必须自己编写逻辑。是的,可以使用手动方法,但是由于冗长和易出错,不建议使用手动方法。是的,可以使用手动方法,但是由于冗长和易出错,不建议使用手动方法。