Читатель тела сообщения Джерси, не найденный в созданном знатоками JAR

Мое приложение использует REST (JAX-RS Джерси) интерфейс. Когда я выполняю его в Eclipse, всем прекрасном. Объекты области аннотируются, я не использую XML-файлы для остальных отображение.

Теперь я создал автономный JAR с помощью плагина блока знатока, который упаковывает приложение и все зависимости в единственном, исполняемом файле JAR. Это также, кажется, работает.

Но когда я запускаю приложение и запрашиваю объект с сервера, Джерси жалуется, что он не может найти читателя тела сообщения:

com.sun.jersey.api.client.ClientHandlerException: A message body reader for Java type, class de.rybu.atuin.core.entity.User, and MIME media type, application/json, was not found

Какие-либо идеи, почему это происходит?

Править: После того, как я спал ночь по нему, я заметил, что это жалуется на JSON..., но я использую только XML для сериализации. Странно.

5
задан Olvagor 29 April 2010 в 08:36
поделиться

1 ответ

Я исправил проблему и, наверное, знаю, как: -)

Мои ресурсы были аннотированы следующим образом:

@Produces( { MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Path(CONTEXT_ADDRESS)
public class UserResource
{
}

Мой клиент использовал обратный порядок:

WebResource wr = ...
User user = wr.accept(MediaType.APPLICATION_JSON_TYPE, MediaType.APPLICATION_XML_TYPE).get(new GenericType<User>(){});

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

1
ответ дан 14 December 2019 в 13:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: