2011-11-23 82 views
1

我嘗試使用Lotus Domino V7 Free Time Web服務。SOAP-ERROR:編碼:對象沒有'請求者'屬性

我這個代碼:

<?php 
    $soap = new SoapClient('http://foo.com/cppfbws.nsf/busytimelookup?WSDL'); 

    print_r($soap->__getFunctions()); //Array ([0] => RESPONSESTRUCTURE LOOKUP(REQUESTSTRUCTURE $REQUEST)) 

    $soap->lookup(array(''), array('Bob'), array(''), '2007-02-26 00:01', '2012-02-26 23:59'); 

    //or 

    $soap->__soapCall('lookup', array(array(''), array('Bob'), array(''), '2007-02-26 00:01', '2012-02-26 23:59')); 
?> 

結果:

Fatal error: SOAP-ERROR: Encoding: object has no 'REQUESTORS' property 

你有什麼想法? ?

cppfbws.nsf/busytimelookup WSDL


只有我有單證

<wsdl:portType name="busytime"> 
    <wsdl:operation name="LOOKUP" parameterOrder="REQUEST"> 
     <wsdl:input message="impl:LOOKUPRequest" name="LOOKUPRequest"/> 
     <wsdl:output message="impl:LOOKUPResponse" name="LOOKUPResponse"/> 
    </wsdl:operation> 
</wsdl:portType> 

<wsdl:message name="LOOKUPResponse"> 
    <wsdl:part name="LOOKUPReturn" type="impl:RESPONSESTRUCTURE"/> 
</wsdl:message> 
<wsdl:message name="LOOKUPRequest"> 
    <wsdl:part name="REQUEST" type="impl:REQUESTSTRUCTURE"/> 
</wsdl:message> 

<complexType name="REQUESTSTRUCTURE"> 
    <sequence> 
     <element name="REQUESTORS" type="impl:ArrayOf_xsd_string"/> 
     <element name="ATTENDEES" type="impl:ArrayOf_xsd_string"/> 
     <element name="DETAILS" type="impl:ArrayOf_xsd_string"/> 
     <element name="START" type="xsd:string"/> 
     <element name="END" type="xsd:string"/> 
    </sequence> 
</complexType> 

http://www.ibm.com/developerworks/lotus/library/domino7-free-time/

attendees[0]="Peter Pan"; //name of the first person 
attendees[1]="Mary Poppins"; //name of the second person   
requestors[0]=""; //Web service does not require this parameter 
details[0]=""; //Web service does not require this parameter 

回答

1

只是請求格式和區分大小寫的問題。

我的最終代碼:

<?php 

    $soap = new SoapClient('http://foo.com/cppfbws.nsf/busytimelookup?WSDL', array('login' => 'root', 'password' => 'root')); 

    $request = array('REQUESTORS' => array(''), 'ATTENDEES' => array('root'), 'DETAILS' => array(''), 'START' => '2011-11-30 01:00', 'END' => '2011-12-30 18:00'); 

    $result = $soap->lookup($request); 

    $i = 0; 

    foreach ($result->ATTENDEES as $r) { 
     echo 'User : '.$r->ATTENDEE.'<br/><br/>'; 
     foreach ($r->BUSY as $b) { 
      echo 'Busy interval #'.$i++.'<br/>'; 
      echo 'Start : '.$b->START.'<br/>'; 
      echo 'End : '.$b->END.'<br/><br/>'; 
     } 
    } 

?> 
+1

這避讓我,我有這個問題。謝謝! – jerrygarciuh

相關問題