Мигрировать на Джерси 2.x с fastinfoset
Я пытаюсь перенести клиентское приложение Jersey 1.0 на Jersey 2.0. Пока что все работает, кроме с типом контента: /application/fastinfoset
Я использовал Jeysey 2.21.1 BOM, чтобы в зависимости был включен jersey fastinfoset.
Моя проблема в том, что я не нашел, как зарегистрировать FastInfoSet.
Я получаю MessageReaderBody исключение.
2 ответа
Вам необходимо зарегистрировать провайдеров FI, соответствующих требованиям Jersey 2. Что-то вроде
private Client client() {
ClientConfig config = new ClientConfig();
config.register(FastInfosetJAXBElementProvider.class);
config.register(FastInfosetRootElementProvider.class);
config.property(ClientProperties.CONNECT_TIMEOUT, 5000);
config.property(ClientProperties.READ_TIMEOUT, 15000);
return JerseyClientBuilder.createClient(config);
}
Классы провайдера из этого репо:
https://github.com/jecklgamis/jersey-fastinfoset-provider
Надеюсь это поможет.
Я создал демо для проблемы, которую создал на JIRA для Джерси. Код работает для приложения / fastinfoset https://java.net/jira/browse/JERSEY-3053
Я работаю для Entity и InputStream. Я еще не закрыл MessageBodyCover.