对于比较耗时的调用,服务端可以先返回成功收到参数的结果,
然后在后台处理。客户端发的消息可以包含一个唯一标识。
客户端有2个方案获得处理结果,
1、服务端做个接口,客户端以消息为标识轮询得到处理结果。
2、客户端也做一个Web Service接口或其他类型的服务,服务端处理完后调用
这个服务改变客户端的消息结果状态。

解决方案 »

  1.   

    是不是,服务器端启动一个线程后,就立即返回,业务逻辑处理在线程里面完成。
    但是,用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方式到底有什么好处呢?
    谢谢
      

  2.   

    没说要用message的方式。是用RPC, 可能是你误解了。
    用message方式说白了就是传的纯xml信息,因为数据本身就是xml了,
    所以不便用 RPC。
      

  3.   

    从客户端传纯xml信息时,用message方式方便,其他情况可以用RPC方式实现。是这样的吗?
    比如说:网上申请这个应用实例里,申请是一个SOAP程序,因为,申请不能马上批准,所以要用非同步的SOAP,如果客户端传的数据不是纯xml,是否可以用RPC方式,启动一个线程后,就立即返回,业务逻辑处理在线程里面完成。如果客户端传的数据是纯xml,用message方式也要启动一个线程后,就立即返回,只不过解析XML方便一些
    请问,  usabcd(9号公路上的3名共军)有没有什么例子呢,我还想跟你深入探讨一下。
      

  4.   

    是这样的,非同步跟你用不用xml 和message方式是2码事,
    不过一个Web服务只能用一种方式,不能同一个服务既用RPC方式又用message方式
    如果这样设计有点乱了,如果确实有这样的需求,那服务端要做成2个服务,
    客户端用不同的url调用。
    apache的axis上带有很多例子你可以参考。
      

  5.   

    我就是看了apache的axis上带的message目录下的例子,才觉得MESSAGE方式和RPC方式在发布,传参数上有不同,其它方面都一样。apache的axis上非同步的例子是那个呢?