2

を作成しようとしていますSoapServerが、理論的にはWSDLすべてを調べても問題ありませんが、実装したサーバーが有効な応答を返しません。wsdlリクエストとレスポンスを定義するの一部:

  <wsdl:types>
    <s:schema elementFormDefault="qualified" targetNamespace="testns">
      <s:element name="serviceRequest">
        <s:complexType>
                        <s:sequence>
                                <s:element name="id" form="unqualified" type="s:string" minOccurs="0" />
                                <s:element name="result" form="unqualified" minOccurs="0" maxOccurs="unbounded">
                                        <s:complexType>
                                                <s:sequence>
                                                        <s:element name="errorCode" form="unqualified" type="s:string" minOccurs="0" />
                                                        <s:element name="errorDescription" form="unqualified" type="s:string" minOccurs="0" />
                                                        <s:element name="nativeErrorCode" form="unqualified" type="s:string" minOccurs="0" />
                                                        <s:element name="nativeErrorDescription" form="unqualified" type="s:string" minOccurs="0" />
                                                </s:sequence>
                                        </s:complexType>
                                </s:element>
                        </s:sequence>
                </s:complexType>
      </s:element>
      <s:element name="serviceresponse">
        <s:complexType>
          <s:sequence>
                        <s:element name="result" form="unqualified" minOccurs="0" maxOccurs="unbounded">
                                        <s:complexType>
                                                <s:sequence>
                                                        <s:element name="errorCode" form="unqualified" type="s:string" minOccurs="0" />
                                                        <s:element name="errorDescription" form="unqualified" type="s:string" minOccurs="0" />
                                                        <s:element name="nativeErrorCode" form="unqualified" type="s:string" minOccurs="0" />
                                                        <s:element name="nativeErrorDescription" form="unqualified" type="s:string" minOccurs="0" />
                                                </s:sequence>
                                        </s:complexType>
                                </s:element>
          </s:sequence>
        </s:complexType>
      </s:element>
    </s:schema>
  </wsdl:types>

phpそしてハンドラ内の私の関数:

function handleService($serviceRequest){
 try{
  throw new Exception("test exception",3);
 }catch (Exception $e){
  return array(array("serviceResponse"=>array(
    "result"=>array(
        "errorCode"=>"1",
        "errorDescription"=>"Error detected",
        "nativeErrorCode"=>"".$e->getCode(),
        "nativeErrorDescription"=>"".$e->getMessage()
        )
  )));
 }
}

この結果、送信responseは次のようになります。

   <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="testns">
    <SOAP-ENV:Body>
    <ns1:serviceResponse>
    <result/>
    </ns1:serviceResponse>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

resultタグは空ですが、サーバー内でそれを記述している配列を設定する必要があります。誰かが私に欠けているもののヒントを教えてもらえますか?

4

0 に答える 0