WSDL: функция 'foo' не существует - PullRequest
1 голос
/ 23 июня 2010

Я нахожусь в процессе разработки WSDL для моего SOAP API, и у меня возникла небольшая проблема.

Я начал с одного 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.

Чего мне не хватает?

...