楼主,还真的没想到你问这么简单的问题。public Date getTimestamp(){ return new Date(); }这个方法不是很难理解吧。把它放到服务端就行了。 如果是要同时传多个参数回来,用Holder方式的参数即可。顺便说一下,根据soap数据样本来写WebService不是正确的开发方法。只需要定好接口就行了。另外说句题外的话,做人要厚道一点,你是来问问题的,不是来考别人的。每一个人都有自己的事情,别人没有义务回答你。在问问题之前最好自己先钻研一端时间,如果你连基本的概念都没看过,那么人家花时间回答了你也未必明白。
我看是没办法了用soap返回两个数据当然很easy,但在webservice中,解析到这样的返回数据,都是当作Object[]来处理的啊,除非你自己写代码来解析传递的soap消息,而不是使用通用的webservice组件
return new Date();
}这个方法不是很难理解吧。把它放到服务端就行了。
如果是要同时传多个参数回来,用Holder方式的参数即可。顺便说一下,根据soap数据样本来写WebService不是正确的开发方法。只需要定好接口就行了。另外说句题外的话,做人要厚道一点,你是来问问题的,不是来考别人的。每一个人都有自己的事情,别人没有义务回答你。在问问题之前最好自己先钻研一端时间,如果你连基本的概念都没看过,那么人家花时间回答了你也未必明白。
据我所知到现在有三种方法:
1、返回一个数组;
2、返回一个对象;
3、返回一个字符串将random和timestamp连接起来但是我的客户端不能够这样去解以上3种方法的返回数据:
1、根据现在这个工作的“标准”规定,返回的必须是2个字符串变量,分别是random和timestamp,因此,第一种方法不可行;
2、根据现在这个工作的“标准”规定,客户端不认识返回的是一个对象,而认为返回的是2个字符串变量,如果返回的是对象,客户端没有代码处理,因此第二个方法也不可行;
3、根据现在这个工作的“标准”规定,返回的必须是2个字符串变量。如果我将两个变量连接起来返回成一个字符串,客户端会认为我少返回了1个字符串变量。也不可行。最后我实在找不到可行的方法了,才来这里问问高手是否有什么其他的方法,今天中午吃饭忽然想起这样的一个方法,不知道是否可行,请问各位高手:
axis环境下,在soap消息中返回一个字符串变量(random)之后,利用某种方法在soap消息体里面自定义增加一个新的返回字符串变量(timestamp)。这样客户端就能够取得两个变量。但我不知道这种方法是否可行,或者有没有可能实现。这种方法和楼上说的“根据soap数据样本来写WebService不是正确的开发方法。只需要定好接口就行了。”比较类似。 但是,我也是没办法啊。如果客户端也是让我来开发,我TMD还用得着这样费劲吗?
不妨说说按你们的工作“标准规定,客户端将如何来调用你的可以返回两个String的服务?
如果有代码示例最好不过
timestamp.value = new Date().toString();
random.value = xxxx;
}这是符合WS标准的写法,任何客户端都会支持的,接受不到那是它客户端写的问题。
用xml作为介质传给客户端再解析吧....<Item Name="GetTimeStampReturn" >hello</GetTimeStampReturn>
<Item Name="RandomReturn" >hello</RandomReturn>
<GetTimeStamp soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<TimeStamp xsi:type="xsd:string">timestamp</GetTimeStampReturn>
<Random xsi:type="xsd:string">random</RandomReturn>
</GetTimeStampResponse>
客户端解析的方法很简单,就是看GetTimeStamp这个message里面的两个参数:TimeStamp,Random。
zcjl() :没办法,我们是根据某种不成熟的标准来工作。标准规定服务端返回2个string,客户端get的方法是看返回的soap消息中GetTimeStamp这个message里面的两个参数:TimeStamp,Random。
usabcd(9号公路上的3名共军) :你说的Holder我确实不知道。如果有这样的东西可以让一个方法返回两个变量,那当然好啊。你给的代码:
public int getTimestamp(StringHolder timestamp, StringHolder random){
timestamp.value = new Date().toString();
random.value = xxxx;
}
我真不懂得理解。能否把这个方法的代码给完整:为什么方法类型是int?
你能说说返回过去给客户端的soap内容吗?客户端一定能够解析吗?
方法类型你不用关心,只要返回2个值就行了。
SOAP内容你可以在做的过程中调试出来。