2012-11-23 2 views
2

나는 NuSoap이있는 Webservice WSDL을 가지고 있습니다. CodeIgniter와 함께 사용합니다. 컨텍스트 유형 배열 반환에 문제가 있습니다.NuSoap은 complexType 배열이 올바르지 않은 것을 반환합니까?

$this->nusoap_server->wsdl->addComplexType(
        "getJobStatusByIdsResponse", 
        "complexType", 
        "array", 
        "all", 
        "SOAP-ENC:Array", 
        array(), 
        array(
         'Job' => array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:jobStatusResponse[]', 'minOccurs'=>'1', 'maxOccurs'=>'unbounded') 
        ), 
        'tns:jobStatusResponse' 
       ); 


$this->nusoap_server->wsdl->addComplexType(
        "getJobStatusByIdsResponse", 
        "complexType", 
        "array", 
        "all", 
        "SOAP-ENC:Array", 
        array(), 
        array(
         'Job' => array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:jobStatusResponse[]', 'minOccurs'=>'1', 'maxOccurs'=>'unbounded') 
        ), 
        'tns:jobStatusResponse' 
       ); 

$this->nusoap_server->register(
        "getJobStatusByIds", 
        array('getJobStatusByIdsRequest' => 'tns:getJobStatusByIdsRequest'), 
        array('getJobStatusByIdsResponse' => 'tns:getJobStatusByIdsResponse'), 
        false, 
        false, 
        "rpc", 
        "literal", 
        "get JobStatus By Ids" 
); 

function getJobStatusByIds($data) { 
    return array(array('orderId' => '1000', 'jobStatus' => '5'),array('orderId' => '1001', 'jobStatus' => '3'),array('orderId' => '1002', 'jobStatus' => '7')) 
} 

나는 수익으로 이것을 얻을 : 여기 내 PHP 코드가

 <ns1:getJobStatusByIdsResponse xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/"> 
     <getJobStatusByIdsResponse> 
      <item> 
       <orderId>1001</orderId> 
       <jobStatus>5</jobStatus> 
      </item> 
      <item> 
       <orderId>1002</orderId> 
       <jobStatus>3</jobStatus> 
      </item> 
      <item> 
       <orderId>1003</orderId> 
       <jobStatus>7</jobStatus> 
      </item> 
     </getJobStatusByIdsResponse> 
     </ns1:getJobStatusByIdsResponse> 

를 잘하지 않는 것이, 그렇지?

어떻게 그것은 (대신 '항목'의 '작업')과 같이 얻을 수

:

<ns1:getJobStatusByIdsResponse xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/"> 
    <getJobStatusByIdsResponse> 
     <Job> 
      <orderId>1001</orderId> 
      <jobStatus>5</jobStatus> 
     </Job> 
     <Job> 
      <orderId>1002</orderId> 
      <jobStatus>3</jobStatus> 
     </Job> 
     <Job> 
      <orderId>1003</orderId> 
      <jobStatus>7</jobStatus> 
     </Job> 
    </getJobStatusByIdsResponse> 
    </ns1:getJobStatusByIdsResponse> 

내가 누구를 도울 수 있는가? NuSoap에 대한 더 많은 예제는 어디에서 찾을 수 있습니까?

답변

0

희망이 도움이됩니다.

NuSoap 매개 변수를 기억하는 데 도움이되는 코드 주석을 추가했습니다.

$this->nusoap_server->register(
        "getJobStatusByIds",               // method name 
        array('getJobStatusByIdsRequest' => 'tns:getJobStatusByIdsRequest'),   // input params 
        array('getJobStatusByIdsResponse' => 'tns:getJobStatusByIdsResponse'),   // output params 
        false,                   // namespace 
        false,                   // soap action 
        "rpc",                   // style 
        "literal",                  // use 
        "get JobStatus By Ids"               // documentation 
); 

응답은 다음과 같이 정의해야한다고 생각합니다.

// Job Status Result Complex Type (output) 
$this->nusoap_server->wsdl->addComplexType(
         "getJobStatusByIdsResponse", 
         "complexType", 
         "struct", 
         "all", 
         "SOAP-ENC:Array", 
         array('Job' => array('orderId' => 'your value here', jobStatus => 'your value here')), 
    ); 
관련 문제