首页 > 解决方案 > HTTP/1.1 415 处理 JSON 时不支持的媒体类型

问题描述

我的代码正在使用 Xml,但使用 Json 失败

使用 RestEasy UI 请求:

POST /api/people HTTP/1.1
Content-Type:application/json

{
    "name":"developer",
    "age":"25",
    "address":"address"
}

类资源.java

package people;

@Path("/api")
public class Resource {

    @GET
    @Produces("text/plain")
    @Path("helloworld")
    public String helloWorld() {
        return "Hello World!";
    }

    @POST
    @Produces("text/plain")
    @Consumes(MediaType.APPLICATION_JSON)
    @Path("people")
    public String updatePeople(People request)  { 
        People p = new People();
        p.setName(request.getName());

        return p.getName(); 
    }
}

和类 People.java

package people;

@XmlRootElement
public class People {

    private String name;
    private String age;
    private String address;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }

}

标签: javajsongradlejerseyjavabeans

解决方案


将以下 jar 添加到您的类路径中。 jersey-media-json-jackson.jar

如果您使用的是 Maven,请将其添加到您的 POM.xml 文件中。

<dependency>
   <groupId>org.glassfish.jersey.media</groupId>
   <artifactId>jersey-media-json-jackson</artifactId>
   <version>2.27</version>
</dependency>

推荐阅读