对于比较耗时的调用,服务端可以先返回成功收到参数的结果,
然后在后台处理。客户端发的消息可以包含一个唯一标识。
客户端有2个方案获得处理结果,
1、服务端做个接口,客户端以消息为标识轮询得到处理结果。
2、客户端也做一个Web Service接口或其他类型的服务,服务端处理完后调用
这个服务改变客户端的消息结果状态。
然后在后台处理。客户端发的消息可以包含一个唯一标识。
客户端有2个方案获得处理结果,
1、服务端做个接口,客户端以消息为标识轮询得到处理结果。
2、客户端也做一个Web Service接口或其他类型的服务,服务端处理完后调用
这个服务改变客户端的消息结果状态。
但是,用RPC方式,就可以达到这个效果啊,为什么还要专门用message方式呢,我看了一下AXIS里关于message方式送信的例子,除了发布服务用下面的deploy.wsdd里的style跟RPC不一样
<service name="MessageService" style="message">
<parameter name="className" value="samples.message.MessageService" />
<parameter name="allowedMethods" value="echoElements" />
</service>
其它都一样,message方式到底有什么好处呢?
谢谢
用message方式说白了就是传的纯xml信息,因为数据本身就是xml了,
所以不便用 RPC。
比如说:网上申请这个应用实例里,申请是一个SOAP程序,因为,申请不能马上批准,所以要用非同步的SOAP,如果客户端传的数据不是纯xml,是否可以用RPC方式,启动一个线程后,就立即返回,业务逻辑处理在线程里面完成。如果客户端传的数据是纯xml,用message方式也要启动一个线程后,就立即返回,只不过解析XML方便一些
请问, usabcd(9号公路上的3名共军)有没有什么例子呢,我还想跟你深入探讨一下。
不过一个Web服务只能用一种方式,不能同一个服务既用RPC方式又用message方式
如果这样设计有点乱了,如果确实有这样的需求,那服务端要做成2个服务,
客户端用不同的url调用。
apache的axis上带有很多例子你可以参考。