2017-05-27 6 views
0

私の友人、私はそれがdeserilizationの誤差を与え続けている私のコードで間違ってやっているかを知りたいと思います。すべてのパラメータを正しく設定すると、クラスエラー(stdClass)が表示されます。 SOAP UIとPHPコードでのwsdlプリントを示します。私はすでにコメントしたオプションをコメントに残しました。PHPのSOAP:[:DeserializationFailed]

<pre> 
$soapParams = array('login' => 'master', 
        'password' => 'master', 
      'authentication' => SOAP_AUTHENTICATION_BASIC, 
        'trace' => 1, 
       'exceptions' => 0); 

$client = new SoapClient("http://189.60.63.128:8061/wsDataServe/MEX?wsdl",$soapParams); 

//$result = $client->__soapCall("ReadView",$params); 
//$result = $client->__soapCall("ReadView",array('DataServerName' => 'EduAlunoData', 'Filtro'=>'?', 'Contexto'=>'?')); 
//$result=$client->__call("ReadView", ['ReadView' => ['DataServerName' => 'EduAlunoData', 'Filtro' => '1=1','Contexto'=>'?']]); 

$result=$client->__soapCall("ReadView", ['DataServerName' => "EduAlunoData", 'Filtro' => '1=1','Contexto'=>'?']); 
print $result; 
</pre> 

Image of the WSDL from SOAP UI

+0

これはエラーです:ConnectedSoapFault例外:[:DeserializationFailed]メッセージをデシリアライズしようとしているときにフォーマッタが例外をスローしました:デシリアライズ中にエラー操作 'ReadView'の要求メッセージの本体。名前空間から終了要素の体は '「http://schemas.xmlsoap.org/soap/envelope/」期待。名前空間 ''から要素 'param1'が見つかりました。 C:\ xampp \ htdocs \ soap \ soap.php:79スタックトレース:#0 C:\ xampp \ htdocs \ soap \ soap.php(79):SoapClient - > __ soapCall( 'ReadView' 、Array)#1 {main} –

+0

これは正しいコードです:$ result = $ client-> ReadView($ params); は私がのvar_dump($クライアント - > __ getTypesを())を使用しました。構造を知るために "struct ReadView {string DataServerName; string Filtro; string Contexto;}" –

答えて

0

私は問題を解決:

<?php 

$soapParams = array('login' => 'master', 
'password' => 'master', 
'authentication' => SOAP_AUTHENTICATION_BASIC, 
'trace' => 1, 
'exceptions' => 0 
); 

$params = array(); 
$client = new SoapClient("http://200.30.20.120:8051/wsDataServer/MEX?wsdl", $soapParams); 
echo "Connected"; 

$params = array('DataServerName' => 'EduAlunoData', 'Filtro'=>'1=1', 'Contexto'=>'?'); 
var_dump($params); 

$result = $client->ReadView($params); 
echo "Response:\n" . $client->__getLastResponse() . "<br><br>"; 

//echo "<br>"; 
//echo "REQUEST:\n" . $client->__getLastRequest() . "<br><br>"; 
//echo "REQUEST HEADERS:\n" . $client->__getLastRequestHeaders() . "<br><br>"; 
//echo "RESPONSE HEADERS:\n" . $client->__getLastResponseHeaders() . "<br><br>"; 
//var_dump($client->__getTypes()); 
//var_dump($client->__getFunctions()); 


//print $result; 


?>