Я использую gwtp с услугами REST, используя ResourceDelegate для совместного использования моего интерфейса между клиентом и сервером. На данный момент все работает нормально.Обработка исключения на стороне клиента с помощью gwtp + REST
Теперь я хочу добавить обработку исключений на стороне клиента и после прочтения официальной документации, образца карстора, нескольких сообщений на SO, мне все еще интересно, что сделано с помощью рамки и что мне осталось.
Таким образом, на данный момент, на стороне сервера, я использую Spring и REST Легко и мой ресурс выглядит следующим образом: Интерфейс:
package ***.shared.rest;
@Path("books")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public interface BookResources {
@GET
BookDTO getBook(@PathParam("id") Integer bookId) throws BookKeyDecodingException;
}
Реализация:
package ***.server.rest;
@Component
@Transactional(readOnly = true)
public class BookResourcesImpl implements BookResources {
@Autowired
private BookService bookService;
@Autowired
private DtoFactory dtoFactory;
@Override
public BookDTO getBook(String bookKey) throws BookKeyDecodingException {
BookDTO bookDTO = BookKeyUtils.decode(supplementKey);
BookModel bookModel = dtoFactory.convertSupplementSuggestionDTO(suggestionDTO);
return bookService.getBook(bookDTO.getId());
}
}
BookKeyDecodingException
в пакет ***. shared.exception и является сериализуемым.
На стороне клиента, мой ведущий будет использовать мой resourceDelegate:
package ***.client.application.book;
public class BookPresenter {
...
private void fetch() {
clearSlot(SLOT_BOOK);
try {
bookDelegate.withCallback(new AsyncCallback<BookDTO>() {
@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated catch block
**???**
}
@Override
public void onSuccess(BookDTO result) {
for (CahierDTO cahier : result.getPages()) {
...
}
}
}).getBook(bookKey);
} catch (BookKeyDecodingException e) {
**???**
}
}
}
И я до сих пор интересно:
- Будет ли она падает к статье поймать?
- К методам onFailure()?
- Ничего из этого?
- Я полагаю, что для управления состоянием ошибки и некорректной сериализации исключения на стороне сервера или это все волшебство?
Приложение: с этой конфигурацией, за исключением падения к методу OnFailure() с родовым исключение, а не BookKeyDecodingException один ... –