2013-08-29 4 views
0

У меня работает веб-сервис, который будет использоваться мобильным приложением на стороне клиента. Одна из служб - вернуть массив объектов JSON (более 1000 объектов), каждый объект значительного размера. Весь расчет на стороне сервера занимает некоторое время, и это не очень хороший пользовательский интерфейс. Поэтому я надеялся отправить данные в куски, например, 10 объектов на кусок, чтобы эти данные занимали экран, а когда он прокручивается или когда данные готовы, экран заполняется вновь полученными данными из последнего полученного пакета ,JAVA: Chunked Tranfer over Jersey

Я использую фреймворк Джерси и отправлю объект Java Response в качестве объекта возврата. Возможно ли добиться этого в сценарии? Код выглядит примерно так.

@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(); 
} 

ответ

1

Ваш сценарий звучит как server push.

Вы можете попытаться использовать раму Atmosphere со своим сервисом Jersey, чтобы достичь своей цели.

+0

Да, что-то похожее на нажим сервера, инициированный запросом от клиента. Можно ли добиться этого без особых изменений на стороне клиента.? – Rakesh

+1

Я боюсь, что некоторые изменения определенно необходимы. Нагрузка сервера - это совсем другая парадигма, чем классический шаблон запроса-ответа. –