报告Java中的Web服务调用进度

时间:2010-08-25 09:38:56

标签: java web-services

我们有一个简单的Web服务客户端调用者UpdaterService(自动生成的,扩展javax.xml.ws.Service)。该类有一个getUpdaterPort函数,它包装了super的getPort函数(这也是标准函数)。

调用getUpdaterPort的返回值是Updater接口:

  

/ **    *此类由JAX-WS RI生成。    * JAX-WS RI 2.1.7-hudson-48-    *生成的源版本:2.1    *    * /   @WebService(name =“Updater”,targetNamespace =“http://updater.glassfish.com/”)   @XmlSeeAlso({       ObjectFactory.class   })   公共接口更新程序{

/**
 * 
 * @param arg2
 * @param arg1
 * @param arg0
 * @return
 *     returns java.lang.String
 */
@WebMethod
@WebResult(targetNamespace = "")
@RequestWrapper(localName = "updateWar", targetNamespace = "http://updater.glassfish.com/", className = "com.abc.utils.updaterclient.client.UpdateWar")
@ResponseWrapper(localName = "updateWarResponse", targetNamespace = "http://updater.glassfish.com/", className = "com.abc.utils.updaterclient.client.UpdateWarResponse")
public String updateWar(
    @WebParam(name = "arg0", targetNamespace = "")
    String arg0,
    @WebParam(name = "arg1", targetNamespace = "")
    String arg1,
    @WebParam(name = "arg2", targetNamespace = "")
    byte[] arg2,
    @WebParam(name = "arg3", targetNamespace = "")
    byte[] arg3);

}

对updateWar的调用很长,因为通过它上传了一个20MB的数组。我们希望能够了解正在进行的进展,以便报告每10%的进展情况。

有没有办法可以挂钩这个电话并知道它有多远?

1 个答案:

答案 0 :(得分:0)

This answer可能就是你想要的。基本上,创建一个Web服务来分配进程ID,开始上传(将进程ID作为输入参数,以及要上载的实际数据),然后创建另一个报告上载进度的Web服务( ID作为输入参数)。