WSDL:函数'foo'不存在

时间:2010-06-23 13:35:37

标签: xml soap wsdl

我正在为我的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

我错过了什么?

0 个答案:

没有答案