Java HTTP/1.1 415处理JSON时不支持的媒体类型

Java HTTP/1.1 415处理JSON时不支持的媒体类型,java,json,gradle,jersey,javabeans,Java,Json,Gradle,Jersey,Javabeans,我的代码使用Xml,但使用Json失败 使用RestEasy UI请求: POST/api/people HTTP/1.1 内容类型:application/json { “名称”:“开发商”, “年龄”:“25岁”, “地址”:“地址” } Class Resource.java package people; @Path("/api") public class Resource { @GET @Produces("text/plain") @Path("hel

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

使用RestEasy UI请求:

POST/api/people HTTP/1.1
内容类型:application/json
{
“名称”:“开发商”,
“年龄”:“25岁”,
“地址”:“地址”
}
Class Resource.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(); 
    }
}
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;
    }

}
和class People.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(); 
    }
}
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;
    }

}

在bean类人员中添加默认构造函数

 public people(){
   }

在bean类人员中添加默认构造函数

 public people(){
   }

您可能在服务器端面临以下异常:

javax.ws.rs.NotSupportedException:RESTEASY003200:找不到 类型为的消息正文读取器:类人物 内容类型:application/json

在这种情况下,您需要将
resteasy-jackson2-provider
依赖项添加到项目中
;因此,假设您正在使用Maven,请尝试将其放入
pom.xml

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jackson2-provider</artifactId>
    <version>3.6.0.Final</version>
</dependency>

org.jboss.resteasy
resteasy-jackson2-provider
3.6.0.1最终版本

您可能在服务器端遇到以下异常:

javax.ws.rs.NotSupportedException:RESTEASY003200:找不到 类型为的消息正文读取器:类人物 内容类型:application/json

在这种情况下,您需要将
resteasy-jackson2-provider
依赖项添加到项目中
;因此,假设您正在使用Maven,请尝试将其放入
pom.xml

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jackson2-provider</artifactId>
    <version>3.6.0.Final</version>
</dependency>

org.jboss.resteasy
resteasy-jackson2-provider
3.6.0.1最终版本

将以下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>

org.glassfish.jersey.media
泽西媒体公司
2.27

将以下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>

org.glassfish.jersey.media
泽西媒体公司
2.27

Define:
无法使用Json
什么是RestEasy UI?我假设这意味着您使用的是RESTEasy而不是Jersey(或否)?请澄清。服务器端是否有异常?定义:
使用Json失败
什么是RestEasy UI?我假设这意味着您使用的是RESTEasy而不是Jersey(或否)?请澄清。服务器端是否有任何异常?