php向java传数组,java接收到的数组长度为0

WBOY
Lepaskan: 2016-06-23 13:47:58
asal
1220 orang telah melayarinya

$NusoapWSDL="http://192.168.1.111:9080/leanprocess/ws/bbsdatatb?wsdl";
// 生成客户端对象
$client = new soapclient($NusoapWSDL, true);
// 设置参数(注意:PHP只能以'数组集'方式传递参数,如果服务端是java,用Map接收)
$param = array( 'dept' => '165','reply'=>'330','commentary'=> '46','date'=> '2014-8');
echo "begin remote 。。。
";
// 调用远程方法
$result = $client->call('TbBbsData', array($param));
echo "debug:  ".array($param)."
";
echo "end remote 。。。
";
// 显示执行结果
if (!$err=$client->getError()){   
 echo '结果 : '.$result;     
}else{   
 echo '错误 : '.$err;   

这个是向java传的数组,传过去了,java用的是cxf,但是接收到的数组长度是0.这是怎么回事。


回复讨论(解决方案)

这要看 WSDL 中是如何定义的 

 


   
  


   
  



   
   
  

  


   

   


   
  

  

  



  

 
  
  
  
这个是wsdl

你的 WSDL 中之定义了
boolean TbBbsData(string $arg0)
参数是一个字符串,当然不会解释成数组啦

那怎么才能将这个boolean TbBbsData(string $arg0)改为数组啊!

服务是对方提供的,当然要由对方修改

 





   
  

  

  

  


   
  


   
  



   
   
  

  


   

   


   
  

  

  



  

 
  
  
  
现在wsdl改成这种了,可是对方接到的数组还是为0

没有人解答吗?急急急啊!

用SoapClient拼字符串解决了

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan