SOAP: Procedure 'proceName' not present

arhip

Новичок
SOAP: Procedure 'proceName' not present

Всем привет!
У меня стоит php 5.0.2 с поддержкой SOAP (--with-soap).
Создал я wsdl-файлик с двумя методами, в ПХП создал с такими-же 2-мя методами и создал сервер
PHP:
$server = new SoapServer("http://dbdev.office.gt.com.ua:8085/arhip/new/dms2.wsdl");
$server->setClass( "Dms" );
$server->handle();
Проблема в том, что первый метод отрабатывает на УРА, а второй - не работает. Вот SOAP-ответ:
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
	<SOAP-ENV:Body>
		<SOAP-ENV:Fault>
			<faultcode>SOAP-ENV:Server</faultcode>
			<faultstring>Procedure 'getPrsByBirthday' not present</faultstring>
		</SOAP-ENV:Fault>
	</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Метод 100% определен. Если оставляю только один метод, то все работает Ок. Комментарий из документации я читал - у меня и так style="rpc". Кто что скажет. Очень нужна помощь.

-~{}~ 11.11.04 12:15:

Вот такой у меня WSDL:
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
    name="Dms"
    targetNamespace="urn:Dms"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:tns="urn:Dms"
    xmlns:typens="urn:Dms"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <wsdl:types>
        <xsd:schema targetNamespace="urn:Dms" xmlns="http://www.w3.org/2001/XMLSchema">
            <xsd:complexType name="Personnel">
                <xsd:all>
                    <xsd:element name="prs_id" type="xsd:integer"/>
                    <xsd:element name="prs_name" type="xsd:string"/>
                    <xsd:element name="prs_surname" type="xsd:string"/>
                    <xsd:element name="prs_secname" type="xsd:string"/>
                    <xsd:element name="prs_email" type="xsd:string"/>
                    <xsd:element name="prs_birthday" type="xsd:date"/>
                </xsd:all>
            </xsd:complexType>
            <xsd:complexType name="PersonnelArray">
                <xsd:complexContent>
                    <xsd:restriction base="soapenc:Array">
                        <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:Personnel[]"/>
                    </xsd:restriction>
                </xsd:complexContent>
            </xsd:complexType>
        </xsd:schema>
    </wsdl:types>
    <wsdl:message name="getPrsByBirthday">
        <wsdl:part name="prs_birthday" type="xsd:date"/>
    </wsdl:message>
    <wsdl:message name="getPrsByBirthdayResponse">
        <wsdl:part name="prs_array" type="tns:PersonnelArray"/>
    </wsdl:message>
    <wsdl:message name="getPrsById">
        <wsdl:part name="prs_id" type="xsd:integer"/>
    </wsdl:message>
    <wsdl:message name="getPrsByIdResponse">
        <wsdl:part name="prs_data" type="tns:Personnel"/>
    </wsdl:message>
    <wsdl:portType name="DmsPort">
        <wsdl:operation name="getPrsById">
            <wsdl:input message="tns:getPrsById"/>
            <wsdl:output message="tns:getPrsByIdResponse"/>
        </wsdl:operation>
        <wsdl:operation name="getPrsByBirthday">
            <wsdl:input message="tns:getPrsByBirthday"/>
            <wsdl:output message="tns:getPrsByBirthdayResponse"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="DmsBinding" type="tns:DmsPort">
        <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="getPrsById">
            <soap:operation soapAction="urn:Dms:DmsPrst#getPrsById"/>
            <wsdl:input>
                <soap:body parts="prs_id" use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                    namespace="urn:Dms/binding"
                    parts="prs_data"
                    use="encoded"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="getPrsByBirthday">
            <soap:operation soapAction="urn:Dms:DmsPrst#getPrsByBirthday"/>
            <wsdl:input>
                <soap:body
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                    namespace="urn:Dms/binding"
                    parts="prs_birthday"
                    use="encoded"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                    namespace="urn:Dms/binding"
                    parts="prs_array"
                    use="encoded"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="DmsPrs">
        <wsdl:port binding="tns:DmsBinding" name="DmsPort">
            <soap:address location="http://dbdev.office.gt.com.ua:8085/arhip/new/dms2.php"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>
-~{}~ 11.11.04 12:16:

И вот еще что. все методы объявлены как public.

-~{}~ 12.11.04 10:55:

Всем спасибо за помощь - никто так и не отозвался :(
Вобщем, проблема решилась отключением кэша на сервере ini_set("soap.wsdl_cache_enabled", 0);

Помог решить проблему Дмитрий Стогов, за что ему большое спасибо.
 
Сверху