webservice 客户端调用 实践发现的问题

发布时间:2017-09-13 12:40:28
webservice 客户端调用 实践发现的问题 刚学习webservice,看到网上有进行webservice客户端调用的文章,方法很简单,很好用,就转载下来

在项目里试了试,发现有问题。

先描述一下我的服务端的webservice。主要是一个参数和返回值都是JSONObject类型的方法。举例 :

[java]

public class Test {

public JSONObject test(JSONObject o) {

......

}

}

我先在服务器端将这个类发布,调用http://.......?wsdl可以看到,发布成功了。

然后我再客户端,用spring托管的方式来调用这个webservice,没有问题,可以拿到正常的返回值。

之后写了一个main方法,在客户端分别有上篇日志转载的方法来调用这个webservice,发现都有问题。

对于第二种方法,直接提示无法createObject www.2cto.com

对于第一种,我之前大意了,对于url后面也加了?wsdl,结果就中出错,提示不存在element的错误。

上网查以才知道,用这种方法url后面是不能加?wsdl的~汗~

我去了?wsdl,,更神奇的现象出现了:我查看日志,传给服务器的参数是JSONObject,服务器接收到的也是这个类型,处理正常执行,,返回的也是这个类型,但是客户端接受的到就被截去了json后面的部分,只显示{“key1”:value2},"key2",value2...都没有了。很崩溃啊

仔细想了想,估计是类型的问题。我把服务器端的webservice参数和返回值类型都改成了String,再次测试,两种方法都没问题了。

webservice是跨语言的,String对于各种语言的支持都是蛮高的,我想,如果没什么特殊需要,还是都用string作为参数和返回值比较好

当然,对于复杂的,必须用对象进行传输的,还需要仔细研究一下,毕竟,传输简单对象也是webservice的一大优点。

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:黄冈网站制作 http://huanggang.666rj.com