我正在为我的SOAP API开发WSDL,我遇到了一些问题。
我从一个operation
开始,它工作正常。但是一旦我添加了另一个operation
,我就会收到一个相当奇怪的错误。
考虑以下因素(为简洁起见而删除):
<message name="doSomethingRequest">
<part name="foo" type="xsd:integer" />
</message>
...
<portType name="myServicePort">
<operation name="doSomething">
<input message="tns:doSomethingRequest" />
<output message="tns:doSomethingResponse" />
</operation>
</portType>
...
<binding name="myServiceBinding" type="tns:myServicePort">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="doSomething">
<soap:operation soapAction="" />
<input>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:mygroup:myservice" use="encoded" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
我正在以非常简单的方式使用PHP来使用此服务:
$ws = new SoapClient($wsdl_url);
$result = $ws->doSomething(1);
现在问题源于WSDL中的某些东西,而不是PHP。我已通过将<part name="foo" ... />
更改为<part name="bar" ... />
来验证这一点,然后SoapFault会更改为Function 'bar' doesn't exist
。
我错过了什么?