Java 爪哇:在泽西岛上的大块运输车

Java 爪哇:在泽西岛上的大块运输车,java,web-services,rest,jersey,chunked-encoding,Java,Web Services,Rest,Jersey,Chunked Encoding,我有一个正在运行的web服务,它将被客户端移动应用程序使用。其中一个服务是返回一个JSON对象数组(超过1000个对象),每个对象都有相当大的大小。服务器端的整个计算需要一些时间,这不是一个好的用户体验。所以我希望以块的形式发送数据,比如说每个块10个对象,这样数据就会占据屏幕,当他滚动时,或者当数据准备好时,屏幕就会充满从最近接收到的块中新获取的数据 我使用Jersey框架并发送一个Java响应对象作为返回对象。在这种情况下是否可能实现分块传输?。代码是这样的 @Path("/doSometh

我有一个正在运行的web服务,它将被客户端移动应用程序使用。其中一个服务是返回一个JSON对象数组(超过1000个对象),每个对象都有相当大的大小。服务器端的整个计算需要一些时间,这不是一个好的用户体验。所以我希望以块的形式发送数据,比如说每个块10个对象,这样数据就会占据屏幕,当他滚动时,或者当数据准备好时,屏幕就会充满从最近接收到的块中新获取的数据

我使用Jersey框架并发送一个Java
响应
对象作为返回对象。在这种情况下是否可能实现分块传输?。代码是这样的

@Path("/doSomething")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response doSomething() {

    List<Object> myObj = getMyObj();
    /* getMyObj returns a list of Objects, each object of considerable size
    * the whole computation of getMyObj takes some time
    */
    return Response.ok(myObj).build();
}
@Path(“/doSomething”)
@得到
@产生(MediaType.APPLICATION_JSON)
公众反应{
List myObj=getMyObj();
/*getMyObj返回一个对象列表,每个对象都有相当大的大小
*getMyObj的整个计算需要一些时间
*/
返回Response.ok(myObj.build();
}
您的场景听起来像


您可以尝试在Jersey服务中使用framework来实现您的目标。

是的,类似于由客户端请求发起的服务器推送。在客户端不做太多改变的情况下,是否有可能实现这一目标?我担心一些改变是绝对必要的。服务器推送模式与经典的请求-响应模式截然不同。