自定义媒体类型消耗休息通话后操作



需要消费以下的REST服务。Jersy Client

@POST
@Produces("application/vnd.app.mail-service+json")
@Consumes("application/vnd.app.mail-service+json")
public TempResponse submit(TempRequest request) {
}

这里的temprequest是jaxb对象。

从JavaScript消耗服务。将Accept-type设置为"应用程序/vnd.app.mail-service json",并发送JSON请求

{
  "TempRequest" :{
       "TempR1" : {
          "id" : "1212",
          "name" : "app",
        }
  }
}

提交请求时,服务申请中的接收请求正文是空的,如果我尝试使用" xml"中的" xml",以及生产和更改内容类型,请求主体并非空。

使用JACSON-CORE和ASL的Spring 4.3.7使用Jersy-cleint和Jax-Rs使用JAX-RS-1.19.3

我不确定为什么要使用application/vnd.app.mail-service+json而不是application/json

相同的需要更改为

@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)

我希望,您对TempRequest类也有类似的变化,即Jaxb类。

@XmlRootElement(name="TempRequest")
@XmlAccessorType(XmlAccessType.FIELD)
public class TempRequest {
    @XmlElement(name="TempR1") 
    private TempR1 temp;
    public TempRequest() {}
    // Getter and setter methods
    // ...
}