GSoap Server + PHP客户端= ERROR MESSAGE:看起来我们没有XML文档

时间:2015-12-14 12:50:54

标签: php xml web-services wsdl gsoap

我创建了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>

0 个答案:

没有答案