Пожалуйста, принесите немного терпения со мной, я знаю, что таких вопросов уже так много, и я не смог решить свою проблему, которая кажется такой простой и я не уверен, чего не хватает (потратил часы, пытаясь понять это). Я использовал следующий архетипа Maven для создания проекта:Джерси с гризли: получение MessageBodyWriter не найдено для типа носителя = application/json
mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 -DarchetypeGroupId=org.glassfish.jersey.archetype
В файле pom.xml, я раскомментировал Moxy зависимости для поддержки JSON
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
</dependency>
Затем я добавил класс, человек, как ниже:
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Person {
private String firstName;
private String lastName;
public Person(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
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;
}
}
MyResource.java выглядит, как показано ниже:
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("myresource")
public class MyResource {
@Path("/person")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Person getPerson() {
return new Person("FistName","LastName");
}
}
Я затем запустить приложение и выпуск следующих способов для получения Person:
http://localhost:8080/myapp/myresource/person
Установка выглядит так просто, но это разве работает, за исключением следующего:
org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor aroundWriteTo SEVERE: MessageBodyWriter not found for media type=application/json, type=class jersey.grizzly.Person, genericType=class jersey.grizzly.Person.
Я не был в состоянии чтобы выяснить, что мне не хватает (и прошли многие предложенные ответы безрезультатно) и могли использовать другой набор глаз/перспективы.
Я знаю, что конструктор по умолчанию требуется для читателя, но я не уверен, о писателе. Вы можете попробовать добавить конструктор по умолчанию в класс модели. –
Спасибо @peeskillet, это была проблема. Я не могу поверить, что я попал в ловушку этого. –
Учитывая, что ответ был в комментарии, как я отмечаю это как ответил? @peeskillet, вы хотите, чтобы оставить комментарий вместо этого, чтобы я закрыл это? (Если есть другой способ добиться того же, когда ответ в комментарии) –