我使用JAX-WS API构建了Web服务。我的网络方法看起来像这样:
@WebMethod
public String getLocation(@WebParam(name = "token") String p_token, @WebParam(name = "code") String p_code) {...}
我只是想知道默认情况下Web服务参数是强制还是可选的?或者它取决于调用Web服务的客户端?我无法从网上找到明确的答案。
使用SoapUI,它显示两个参数都是可选的。我可以调用该方法省略任何参数而没有任何问题。
使用VB.Net,我需要提供两个参数,空字符串很好。
答案 0 :(得分:0)
例如,考虑:http://www.w3schools.com/xml/tempconvert.asmx?WSDL
<s:element name="CelsiusToFahrenheit">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Celsius" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
基于minOccurs和maxOccurs值,我们决定SOAP请求。 在这种情况下,minOccurs为0,因此SOAP请求在没有此元素的情况下保持良好,此元素是可选的。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.w3schools.com/webservices/">
<soapenv:Header/>
<soapenv:Body>
<web:CelsiusToFahrenheit>
</web:CelsiusToFahrenheit>
</soapenv:Body>
</soapenv:Envelope>