Джерси не видит мой MessageBodyReader

Я пытаюсь использовать трикотаж со своим собственным json MessageBodyReader / MessageBodyWriter (так как я не использую аннотации @XmlRootElement ... в своих доменных классах).

@Provider
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public final class MyGsonMessageBodyHandler implements MessageBodyWriter<Object>, MessageBodyReader<Object> {
...
}

Джерси использует этот класс в качестве тела письма (как он останавливается в точке останова в реализованном методе writeTo). Но он не видит этот класс как messagebodyreader (и даже когда я разбиваю этот класс на отдельные реализации messagebodyreader / messagebodywriter, он по-прежнему отказывается использовать мой messagebodyreader).

Тестовый код выглядит следующим образом (jersey-grizzly) :

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?

6
задан Alex 24 May 2011 в 14:16
поделиться