java - 灰熊队 Jersey : Getting MessageBodyWriter not found for media type=application/json

标签 java json maven jersey-2.0 grizzly

请耐心等待我,我知道已经有很多这样的问题而且我无法解决我的问题,这些问题看起来很基本而且我不确定缺少什么(花了几个小时试图解决这个问题) .我使用以下 Maven 原型(prototype)来生成项目:

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>

然后我添加了一个类,Person 如下:

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

设置看起来很简单,但这并没有用,除了以下异常(exception):

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.

我一直无法弄清楚我错过了什么(并且已经查看了许多建议的答案但无济于事)并且可以使用另一组眼睛/视角。

最佳答案

鉴于 MOXy 是 JAXB 的派生物,并且 JAXB 的类型需要无参数(默认)构造函数,因此您的模型类中应该有一个无参数构造函数。

另见

关于java - 灰熊队 Jersey : Getting MessageBodyWriter not found for media type=application/json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38156876/

相关文章:

php - 如何在android中比较JSON对象和字符串?

javascript - 如何在 JSON 对象中存储 JSON 字符串而不导致语法错误?

java - Intellij IDEA : synchronization of updatings in the pom-file and external libraries

java - 如何使用 Selenium 和 Java 打印从网页获取的带有空格分隔符的提取文本

java - 从网页读取数据并写入excel

ios - 如何将 SwiftyJSON 对象数组转换为 SwiftyJSON 对象?

maven - 使用 IntelliJ 和 Maven 构建可执行 jar 的自定义 jar 内容

android - 找不到要导入的项目

java - 对大矩阵(即 10,000 x 10,000)执行求逆

java - 如何获取 btrace 中所有 Activity 线程 ID?