В GWT RPC, как отправить необработанный десериализованный объект ответа клиенту?

#gwt #gwt-rpc

#gwt #gwt-rpc

Вопрос:

Я знаю, что это немного банально, но текущие обстоятельства не позволяют мне переписать некоторые аспекты приложения.

 rpcService.someServiceCall(String someParameter,
            new AsyncCallback<LargeClientObject>(){
  

По сути, у нас есть очень большой ответ от сервера клиенту, называемый LargeClientObject . Десериализация на стороне клиента занимает очень много времени для удаления. Мне было интересно, каким наилучшим способом было бы отправить десериализованные данные (необработанный JSON) клиенту, чтобы клиенту не приходилось тратить время на их десериализацию.

Мне было интересно, есть ли способ просто сделать:

 rpcService.someServiceCall(String someParameter,new ASyncCallback_WithNoClientSerialization<LargeClientObject>(){
  

К вашему сведению, я пытался использовать RequestFactory для загрузки ClientObjects, но у него много пользовательских объектов, для написания которых потребовалась бы вечность, и мне пришлось бы реорганизовать большую часть существующего приложения.

Ответ №1:

Я думаю, вы можете рассмотреть два подхода.

A. Вызовите сервлет, чтобы получить ответ в формате JSON без использования RPC.

B. Используйте существующую службу RPC, но измените возвращаемый тип на String вместо LargeClientObject и передайте строку JSON.

Вероятно, вам нужно проверить, какой подход работает лучше.