Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对于SOAP,我们需要从WSDL生成客户端存根吗?_Java_Web Services_Soap_Groovy_Wsdl - Fatal编程技术网

Java 对于SOAP,我们需要从WSDL生成客户端存根吗?

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>" +

与REST一样,使用SOAP时,我是否可以安全地假设客户端调用web服务的所有操作最终都是向端点URL发布一些XML?如果是这种情况,那么是否需要使用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)
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异常处理和转换。如果您决定不使用它们,那么您必须自己编写逻辑。

是的,可以使用手动方法,但是由于冗长和易出错,不建议使用手动方法。是的,可以使用手动方法,但是由于冗长和易出错,不建议使用手动方法。