GSoap Server + PHP клиент = СООБЩЕНИЕ ОБ ОШИБКЕ: похоже, у нас нет XML-документа

Я создал 3 службы, которые были созданы с использованием функциональности gSoap, расположенной здесь:
http://www.cs.fsu.edu/~engelen/soap.html

Сервер SOAP был написан на «C» (и упомянутой выше GSoap Framework). Есть PHP-клиент, который использует эти сервисы.
Проблема в том, что 2 службы работают из PHP-клиента, а один — нет. При выполнении кода клиента PHP (см. Ниже) я получаю сообщение об ошибке:

СООБЩЕНИЕ ОБ ОШИБКЕ: похоже, у нас нет XML-документа

Дело в том, что все 3 услуги работать нормально из инструмента тестирования клиента SOAP:
http://www.soapclient.com/soaptest.html

Чтобы устранить любые проблемы, связанные с кэшированием, я сделал следующее на основе ссылок ниже:

FROM:http://stackoverflow.com/questions/14374500/soap-wsdl-cache-enabled
FROM:http://stackoverflow.com/questions/8354785/uncaught-soapfault-exception-client-function-is-not-a-valid-method-for-this-s

Changes in the file php.ini:
soap.wsdl_cache_enabled=0
soap.wsdl_cache_ttl=0

Я приложил WSDL ниже для дальнейшей проверки.

В чем проблема?

Спасибо!

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="conmony"targetNamespace="urn:monyServer"xmlns:tns="urn:monyServer"xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:am="urn:conmony"xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap/"xmlns:HTTP="http://schemas.xmlsoap.org/wsdl/http/"xmlns:MIME="http://schemas.xmlsoap.org/wsdl/mime/"xmlns:DIME="http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/"xmlns:WSDL="http://schemas.xmlsoap.org/wsdl/"xmlns="http://schemas.xmlsoap.org/wsdl/">

<types>

<schema targetNamespace="urn:conmony"xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:am="urn:conmony"xmlns="http://www.w3.org/2001/XMLSchema"elementFormDefault="qualified"attributeFormDefault="unqualified">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="struct-DBTENANTRET"><!-- am__struct_DBTENANTRET -->
<sequence>
<element name="Logon" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBTENANTRET::Logon -->
<element name="Password" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBTENANTRET::Password -->
<element name="TenantID" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__struct_DBTENANTRET::TenantID -->
<element name="LogonUserID" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__struct_DBTENANTRET::LogonUserID -->
<element name="ReturnCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__struct_DBTENANTRET::ReturnCode -->
<element name="KeyID" type="xsd:double" minOccurs="1" maxOccurs="1"/><!-- am__struct_DBTENANTRET::KeyID -->
<element name="Message" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBTENANTRET::Message -->
</sequence>
</complexType>
<complexType name="TENANTRETItems"><!-- am__TENANTRETItems -->
<sequence>
<element name="item" type="am:struct-DBTENANTRET" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
</sequence>
</complexType>
<complexType name="struct-DBKEYTENANTRET"><!-- am__struct_DBKEYTENANTRET -->
<sequence>
<element name="Logon" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBKEYTENANTRET::Logon -->
<element name="Password" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBKEYTENANTRET::Password -->
<element name="TenantID" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__struct_DBKEYTENANTRET::TenantID -->
<element name="LogonUserID" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__struct_DBKEYTENANTRET::LogonUserID -->
<element name="ReturnCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__struct_DBKEYTENANTRET::ReturnCode -->
<element name="KeyID" type="xsd:double" minOccurs="1" maxOccurs="1"/><!-- am__struct_DBKEYTENANTRET::KeyID -->
<element name="Message" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBKEYTENANTRET::Message -->
</sequence>
</complexType>
<complexType name="KEYTENANTRETItems"><!-- am__KEYTENANTRETItems -->
<sequence>
<element name="item" type="am:struct-DBKEYTENANTRET" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
</sequence>
</complexType>
<complexType name="struct-DBTENANTGET"><!-- am__struct_DBTENANTGET -->
<sequence>
<element name="outTENATID" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__struct_DBTENANTGET::outTENATID -->
<element name="outLogonUserID" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__struct_DBTENANTGET::outLogonUserID -->
<element name="outLogonID" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBTENANTGET::outLogonID -->
<element name="outSetPassword" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBTENANTGET::outSetPassword -->
<element name="outRespGender" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__struct_DBTENANTGET::outRespGender -->
<element name="outRespFirstName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBTENANTGET::outRespFirstName -->
<element name="outRespLastName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBTENANTGET::outRespLastName -->
<element name="outRespEMail" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBTENANTGET::outRespEMail -->
<element name="outRespPhoneNo" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBTENANTGET::outRespPhoneNo -->
<element name="outTaxEINNo" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBTENANTGET::outTaxEINNo -->
<element name="outCompanyName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBTENANTGET::outCompanyName -->
<element name="outABANumber" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBTENANTGET::outABANumber -->
<element name="outEMailInvoice" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBTENANTGET::outEMailInvoice -->
<element name="outWordpressAuthID" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__struct_DBTENANTGET::outWordpressAuthID -->
<element name="outWebsiteAddress" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBTENANTGET::outWebsiteAddress -->
<element name="ReturnCode" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__struct_DBTENANTGET::ReturnCode -->
<element name="KeyID" type="xsd:double" minOccurs="1" maxOccurs="1"/><!-- am__struct_DBTENANTGET::KeyID -->
<element name="Message" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__struct_DBTENANTGET::Message -->
</sequence>
</complexType>
<complexType name="TENANTGETItems"><!-- am__TENANTGETItems -->
<sequence>
<element name="item" type="am:struct-DBTENANTGET" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
</sequence>
</complexType>
<!-- operation request element -->
<element name="tenantGet">
<complexType>
<sequence>
<element name="inLogonID" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantGet::inLogonID -->
<element name="incallhost" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantGet::incallhost -->
<element name="incallpid" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__tenantGet::incallpid -->
<element name="incallfilename" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantGet::incallfilename -->
<element name="incallfileno" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__tenantGet::incallfileno -->
</sequence>
</complexType>
</element>
<!-- operation response element -->
<element name="tenantGetResponse">
<complexType>
<sequence>
<element name="DBGetListing" type="am:TENANTGETItems" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantGet::DBGetListing -->
</sequence>
</complexType>
</element>
<!-- operation request element -->
<element name="tenantCreate">
<complexType>
<sequence>
<element name="inLogonID" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantCreate::inLogonID -->
<element name="inSetPassword" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantCreate::inSetPassword -->
<element name="inRespGender" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__tenantCreate::inRespGender -->
<element name="inRespFirstName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantCreate::inRespFirstName -->
<element name="inRespLastName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantCreate::inRespLastName -->
<element name="inRespEMail" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantCreate::inRespEMail -->
<element name="inRespPhoneNo" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantCreate::inRespPhoneNo -->
<element name="inTaxEINNo" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantCreate::inTaxEINNo -->
<element name="inCompanyName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantCreate::inCompanyName -->
<element name="inABANumber" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantCreate::inABANumber -->
<element name="inEMailInvoice" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantCreate::inEMailInvoice -->
<element name="inWordpressAuthID" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__tenantCreate::inWordpressAuthID -->
<element name="inWebsiteAddress" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantCreate::inWebsiteAddress -->
<element name="inCreateUserID" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__tenantCreate::inCreateUserID -->
<element name="inCreateGroupID" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__tenantCreate::inCreateGroupID -->
<element name="incallhost" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantCreate::incallhost -->
<element name="incallpid" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__tenantCreate::incallpid -->
<element name="incallfilename" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantCreate::incallfilename -->
<element name="incallfileno" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__tenantCreate::incallfileno -->
</sequence>
</complexType>
</element>
<!-- operation response element -->
<element name="tenantCreateResponse">
<complexType>
<sequence>
<element name="DBListing" type="am:TENANTRETItems" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantCreate::DBListing -->
</sequence>
</complexType>
</element>
<!-- operation request element -->
<element name="tenantUpdate">
<complexType>
<sequence>
<element name="finLogonID" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantUpdate::finLogonID -->
<element name="finSetPassword" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantUpdate::finSetPassword -->
<element name="finRespGender" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__tenantUpdate::finRespGender -->
<element name="finRespFirstName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantUpdate::finRespFirstName -->
<element name="finRespLastName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantUpdate::finRespLastName -->
<element name="finRespEMail" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantUpdate::finRespEMail -->
<element name="finRespPhoneNo" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantUpdate::finRespPhoneNo -->
<element name="finTaxEINNo" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantUpdate::finTaxEINNo -->
<element name="finCompanyName" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantUpdate::finCompanyName -->
<element name="finABANumber" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantUpdate::finABANumber -->
<element name="finEMailInvoice" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantUpdate::finEMailInvoice -->
<element name="finWordpressAuthID" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__tenantUpdate::finWordpressAuthID -->
<element name="finWebsiteAddress" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantUpdate::finWebsiteAddress -->
<element name="finCreateUserID" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__tenantUpdate::finCreateUserID -->
<element name="finCreateGroupID" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__tenantUpdate::finCreateGroupID -->
<element name="fincallhost" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantUpdate::fincallhost -->
<element name="fincallpid" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__tenantUpdate::fincallpid -->
<element name="fincallfilename" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantUpdate::fincallfilename -->
<element name="fincallfileno" type="xsd:int" minOccurs="1" maxOccurs="1"/><!-- am__tenantUpdate::fincallfileno -->
</sequence>
</complexType>
</element>
<!-- operation response element -->
<element name="tenantUpdateResponse">
<complexType>
<sequence>
<element name="DBListing" type="am:TENANTRETItems" minOccurs="0" maxOccurs="1" nillable="true"/><!-- am__tenantUpdate::DBListing -->
</sequence>
</complexType>
</element>
</schema>
</types>

<message name="tenantGetRequest">
<part name="Body" element="am:tenantGet"/><!-- am__tenantGet::am__tenantGet -->
</message>

<message name="tenantGetResponse">
<part name="Body" element="am:tenantGetResponse"/>
</message>

<message name="tenantCreateRequest">
<part name="Body" element="am:tenantCreate"/><!-- am__tenantCreate::am__tenantCreate -->
</message>

<message name="tenantCreateResponse">
<part name="Body" element="am:tenantCreateResponse"/>
</message>

<message name="tenantUpdateRequest">
<part name="Body" element="am:tenantUpdate"/><!-- am__tenantUpdate::am__tenantUpdate -->
</message>

<message name="tenantUpdateResponse">
<part name="Body" element="am:tenantUpdateResponse"/>
</message>

<portType name="conmonyPortType">
<operation name="tenantGet">
<documentation>Service definition of function am__tenantGet</documentation>
<input message="tns:tenantGetRequest"/>
<output message="tns:tenantGetResponse"/>
</operation>
<operation name="tenantCreate">
<documentation>Service definition of function am__tenantCreate</documentation>
<input message="tns:tenantCreateRequest"/>
<output message="tns:tenantCreateResponse"/>
</operation>
<operation name="tenantUpdate">
<documentation>Service definition of function am__tenantUpdate</documentation>
<input message="tns:tenantUpdateRequest"/>
<output message="tns:tenantUpdateResponse"/>
</operation>
</portType>
<binding name="conmony" type="tns:conmonyPortType">
<SOAP:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="tenantGet">
<SOAP:operation soapAction=""/>
<input>
<SOAP:body parts="Body" use="literal"/>
</input>
<output>
<SOAP:body parts="Body" use="literal"/>
</output>
</operation>
<operation name="tenantCreate">
<SOAP:operation soapAction=""/>
<input>
<SOAP:body parts="Body" use="literal"/>
</input>
<output>
<SOAP:body parts="Body" use="literal"/>
</output>
</operation>
<operation name="tenantUpdate">
<SOAP:operation soapAction=""/>
<input>
<SOAP:body parts="Body" use="literal"/>
</input>
<output>
<SOAP:body parts="Body" use="literal"/>
</output>
</operation>
</binding>

<service name="conmony">
<documentation>gSOAP 2.8.26 generated service definition</documentation>
<port name="conmony" binding="tns:conmony">
<SOAP:address location="http://100.48.227.50:8080"/>
</port>
</service>

</definitions>

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …