私にはいくつかの忍耐を与えてください。すでに多くのこのような質問があることを知っており、とても基本的な問題を解決できませんでした。何が欠けているか分からない(これを理解しようと時間を費やしている)。私はその後、としてクラス、人を追加しました私はJSONJersey with Grizzly:メディアタイプ= application/jsonのMessageBodyWriterが見つかりません
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
</dependency>
をサポートするためにMOXY依存関係をコメント解除している、pom.xmlファイルで
mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 -DarchetypeGroupId=org.glassfish.jersey.archetype
:私は、プロジェクトを生成するには、次のMavenの原型を使用していました以下:
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");
}
}
私は、人を取得するには、次のアプリケーションとの問題を開始します。
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.
私はできていません私はそれが何であるかを理解するために(そして多くの示唆された答えを無駄に使いました)、別の目/視点を使うことができました。
関連項目Iは、デフォルトコンストラクタが読者のために必要とされるけど、私は作家についてはよく分かりません。モデルクラスにデフォルトコンストラクタを追加してみることができます。 –
ありがとう@peeskillet、これは問題でした。私はそれで罠にかかったと信じていません。 –
答えがコメントにあったとすれば、私はこれをどのように答えたのでしょうか? @peeskilletあなたは答えをコメントにしたいのですか?これを閉じるには? (答えがコメントのときに同じことを達成する別の方法がない限り) –