Я пытаюсь использовать Jersey RS, чтобы вернуть JSON для POJO.Это не сервлет и нет контейнера сервлета.Джерси настраивается из Netty (не Jetty).Я могу заставить Джерси вернуть APPLICATION_XML, но APPLICATION_JSON на том же ресурсе выдает исключение, сообщающее, что не найден модуль записи тела сообщения для моего класса домена.Я включил модули jersey-json и jackson-jaxrs в pom.xml.
Вот как настраивается ResourceConfig:
Map<String, Object> props = new HashMap<String, Object>();
props.put(PackagesResourceConfig.PROPERTY_PACKAGES, RESOURCES_PACKAGE);
props.put(PROPERTY_BASE_URI, "http://localhost:9000/");
props.put(JSONConfiguration.FEATURE_POJO_MAPPING, true);
ContainerFactory.createContainer(JerseyHandler.class, new PackagesResourceConfig(props));
, где JerseyHandler - мой класс обработчика Netty.Ресурс очень прост:
@Path("/test")
public class TestResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
public TestData get() {
return new TestData();
}
TestData - самый простой класс модели:
@XmlRootElement
public class TestData {
private String firstName;
private String lastName;
public TestData() {}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
Вот исключение при попытке доступа к "/ test":
SEVERE: A message body writer for Java class com.xyz.models.TestData, and Java type class com.xyz.models.TestData, and MIME media type application/json was not found
Я пытался включить классы контекста из здесь , но все еще не повезло.
Не могу себе представить, что вернуть JSON из Джерси может быть так сложно.Все примеры в интернете предполагают, что вы используете Джерси из контейнера сервлетов, а я нет!спасибо за любые материалы.