2010-06-14 3 views
5

을 던져 '잘못된 버전 "예외입니다.SoapClient는 잘못된 버전

요청 위
<OTA_HotelGetMsgRQ xmlns="http://www.opentravel.org/OTA/2003/05" 
    TimeStamp="2001-12-17T09:30:47.0Z" Version="4" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <Messages> 
     <Message HotelCode="123" HotelName="Test Hotel" ChainCode="321" 
      ReasonForRequest="Reservation Retrieval" RequestCode="Optional" 
      ChainName="Test Chain" MessageType="All" StartSeqNmbr="1" 
      EndSeqNmbr="10" /> 
    </Messages> 
</OTA_HotelGetMsgRQ> 

라인 위

$client = new zend_soap_client(null, 
     array(
       'location' => 'http://url...', 
       'Uri' =>"http://www.opentravel.org/OTA/2003/05" 
     ) 
); 

$request = array(
     array('Messages'=> 
       array ('Message' => 
         array (
           'HotelCode' => '123', 
           'HotelName' => 'Test Hotel', 
           'ChainCode' => '321', 
           'ReasonForRequest' => 'Reservation Retrieval', 
           'RequestCode' => 'Optional', 
           'ChainName' => 'Test Chain', 
           'MessageType' => 'All', 
           'StartSeqNmbr' => '1', 
           'EndSeqNmbr' => '10' 
         ) 
       ) 
     ) 
); 

$result = $client->OTA_HotelGetMsgRQ ($request); 

이 예외가 발생 젠드 코드로 변환되어'잘못된 버전 누구든지이 문제를 해결하는 방법을 알려주십시오

답변

1

은 잘못된 버전을 사용하고있는 것처럼 들립니다.) - 'soap_version'=>'1.2' (또는 필요한 버전에 따라 1.1)을 추가하려고 시도 했습니까? 당신의 soap_client 옵션에?

+0

두 버전 모두 시도했습니다. 하지만 난 아직 성공하지 못해. – sivansethu

1
$autodiscover = new Zend_Soap_AutoDiscover(); 
$autodiscover->setClass('Core_Soap_Test'); 
$autodiscover->setUri(sprintf($this->_WSDL_URI,0)); 
$autodiscover->handle(); 

$this->_WSDL_URI = '"http://WWW.EXAMPLE.COM/soap/index/wsdl/%s/?wsdl' 

위의 코드를 사용해보십시오. 이것은 나를 도왔습니다

0

나는이 문제도 가지고있었습니다. 제 경우의 문제점은 SoapFault 예외를 던지지 않고 예상 된 (따라서 필수적인) 매개 변수를 전달하지 않고 있다는 것입니다. 어쩌면 누군가에게 유용 할 수 있습니다.

관련 문제