http://blog.csdn.net/huayu0815/article/details/8564084
刚学习webservice,看到网上有进行webservice客户端调用的文章,方法很简单,很好用,就转载下来
http://blog.csdn.net/huayu0815/article/details/8564084
在项目里试了试,发现有问题。
先描述一下我的服务端的webservice。主要是一个参数和返回值都是JSONObject类型的方法。举例 :
public class Test { public JSONObject test(JSONObject o) { ...... } }
我先在服务器端将这个类发布,调用http://.......?wsdl可以看到,发布成功了。
然后我再客户端,用spring托管的方式来调用这个webservice,没有问题,可以拿到正常的返回值。
之后写了一个main方法,在客户端分别有上篇日志转载的方法来调用这个webservice,发现都有问题。
对于第一种,我之前大意了,对于url后面也加了?wsdl,结果就中出错,提示不存在element的错误。
上网查以才知道,用这种方法url后面是不能加?wsdl的~汗~
我去了?wsdl,更神奇的现象出现了:我查看日志,传给服务器的参数是JSONObject,服务器接收到的也是这个类型,处理正常执行,返回的也是这个类型,但是客户端接受的到就被截去了json后面的部分,只显示{“key1”:value2},"key2",value2...都没有了。很崩溃啊
仔细想了想,估计是类型的问题。我把服务器端的webservice参数和返回值类型都改成了String,再次测试,两种方法都没问题了。
webservice是跨语言的,String对于各种语言的支持都是蛮高的,我想,如果没什么特殊需要,还是都用string作为参数和返回值比较好
当然,对于复杂的,必须用对象进行传输的,还需要仔细研究一下,毕竟,传输简单对象也是webservice的一大优点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。