胖熊熊

得到多少又失去了什么

soap不同语言通信参数异常

  最近在做一个项目时,需要使用.net 的soap服务,但是根据wsdl 生成的客户端一直都无法调用成功,提示:  Data type 'soapenc:Array' mismatch in element 'stParameters'。其中stParameters在wsdl 中描述为数组类型,soap sytle为RPC,java生成客户端对应的参数为Object[]。
  在调用的时候,如果不传数组参数,接口收发正常,一旦带了数组参数,就会出现上面的异常。后来找了很多资料,基本上是说服务端wsdl样式问题。在对方服务端不会因我们接入方而改变情况下,我们只能采取无奈的手段,使用JAXM 来发送和接受SOAP消息。

   具体使用可以参考:http://www.ibm.com/developerworks/cn/xml/tips/x-jaxmsoap/
   对于接受的SOAP消息,可以直接加载成xml进行解析,如下:
SOAPMessage reply = connection.call(message, urlEndpoint);
            
            ByteArrayOutputStream respbty 
= new ByteArrayOutputStream();
            reply.writeTo(respbty);
            String respstr 
= new String(respbty.toByteArray());
            logger.info(
"接收SOAP消息包:"+respstr);

 

posted on 2009-09-25 15:05 fatbear 阅读(301) 评论(0)  编辑  收藏 所属分类: JAVAweb service


只有注册用户登录后才能发表评论。


网站导航: