Web services SOAP绑定类型对生成的WSDL没有影响
我尝试了来自mkyong站点的示例代码,并尝试了参数组合。 我尝试将javax.jws.soap.SOAPBinding.Use.LITERAL更改为javax.jws.soap.SOAPBinding.Use.ENCODED,用于RPC样式的服务接口Web services SOAP绑定类型对生成的WSDL没有影响,web-services,soap,wsdl,Web Services,Soap,Wsdl,我尝试了来自mkyong站点的示例代码,并尝试了参数组合。 我尝试将javax.jws.soap.SOAPBinding.Use.LITERAL更改为javax.jws.soap.SOAPBinding.Use.ENCODED,用于RPC样式的服务接口 package com.mkyong.ws; import javax.jws.WebMethod; import javax.jws.WebService; import javax.jws.soap.SOAP
package com.mkyong.ws;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
import javax.jws.soap.SOAPBinding.Use;
import javax.jws.soap.SOAPBinding.ParameterStyle;
//Service Endpoint Interface
@WebService
@SOAPBinding(style = Style.RPC, use = Use.ENCODED, parameterStyle = ParameterStyle.WRAPPED)
public interface HelloWorld{
@WebMethod String getHelloWorldAsString(String name);
}
唯一的变化是没有使用use=use.LITERAL
现在我有了use=use.ENCODED
。
然而,产生的WSDL似乎根本没有改变
在这两种情况下创建的WSDL仍然将
use属性显示为“literal”
在一些WS-implementation中,未实现Use.ENCODED。
这可能是用户获得相同WSDL的原因之一。
JAXWS 2.0不支持rpc/编码的WSDL。
JAXWS 2.2中也不支持rpc/encoded。
请参考下面的链接以获取相同的信息。
.我正在使用Java 1.7.0_25并使用股票JAX-WS支持来创建这些简单类。知道这是否是一个问题吗?Java7包括JAX-WS2.2。我不确定这个版本是否支持Use.ENCODED,但在JAX-WS 2.0中不支持。JAX-WS 2.2不支持RPC/ENCODED。请参考下面的链接。我想这回答了你的问题。如果是,请接受答案
<soap:body use="literal"
<binding name="HelloWorldImplPortBinding" type="tns:HelloWorld">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"></soap:binding>
<operation name="getHelloWorldAsString">
<soap:operation soapAction=""></soap:operation>
<input>
<soap:body use="literal" namespace="http://ws.mkyong.com/"></soap:body>
</input>
<output>
<soap:body use="literal" namespace="http://ws.mkyong.com/"></soap:body>
</output>
</operation>
</binding>