Я пытаюсь использовать jersey со своим собственным json MessageBodyReader / MessageBodyWriter (так как я не использую аннотации @XmlRootElement ... в моих классах домена).
@Provider
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public final class MyGsonMessageBodyHandler implements MessageBodyWriter<Object>, MessageBodyReader<Object> {
...
}
Джерси использует этот класс как messagebodywriter (так как он останавливается на точке останова в реализованном методе writeTo). Однако он не видит этот класс как messagebodyreader (и даже когда я разбиваю этот класс на отдельные реализации messagebodyreader / messagebodywriter, он все равно отказывается использовать мой messagebodyreader).
Код тестирования выглядит следующим образом (джерси-гризли):
final Greeting greeting = resource.path("/greeting")
.queryParam("name", name)
.accept(MediaType.APPLICATION_JSON)
.type(MediaType.APPLICATION_JSON)
.get(Greeting.class);
Полученная ошибка выглядит следующим образом:
A message body reader for Java class test.Greeting, and Java type class test.Greeting, and MIME media type application/json was not found
Мне интересно, какая магия требуется для написания собственного MessageBodyReader?