PHP SoapClient hatası - için Eksik isim

1 Cevap php

Ben PHP SoapClient kullanarak bir WSDL doğru bağlantı almak için çalışıyorum, bu (de WSDL bulduğu gibi) tamam bağlanır ama sonra bana aşağıdaki hatayı veriyor:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Missing name for <fault> of 'invokeService'

Aşağıdaki gibi PHP kodu:

$client = new SoapClient("wsdl.wsdl");

Aşağıdaki gibi ve başarısız oluyor WSDL dosyasında XML:

  <portType name="invokePort"> 
    <operation name="invokeService"> 
      <input message="wsdlns:invokeRequest"/> 
      <output message="wsdlns:invokeResponse"/> 
      <fault message="soap:fault"></fault> 
    </operation> 
  </portType> 

Herhangi bir fikir sorun ne?

Teşekkürler

1 Cevap

Peki, Missing name for <fault> oldukça kendini açıklayıcı geliyor. Eğer fay elemana bir öznitelik "adını" eklemeyi denediniz mi?

UPDATE: Missing <message> with name 'soap:fault' hata ilgili olarak, aşağıdakileri deneyebilirsiniz:

<message name="MyFaultName"/>
<portType>
    <!-- ... -->
    <fault name="MyFaultName">
        <soap:fault name="MyFaultName" use="literal"/>
    <fault>
</portType>

Emin değil fazla olsa, diğer konularda şikayet olmaz. Elle WSDLs oluşturarak gerçek bir ağrı, ben seni some tool bu kaynak koddan sizin için üretir bakmak tavsiye ederim.