application/json java,java – @Consumes({“application / xml,application / json”})如何编程返回类型...

我有一个应用程序,我希望它接受XML和JSON,我如何编程返回类型?例如,这是我的POJO

import javax.xml.bind.annotation.XmlElement;

import javax.xml.bind.annotation.XmlRootElement;

// Class to marshall and unmarshall the XML and JSON to POJO

// This is a class for the request JSON and XML

@XmlRootElement

public class KeyProvision {

private String Consumer ;

private String API ;

private String AllowedNames ;

public void setConsumer( String Consumer)

{

this.Consumer= Consumer;

}

public void setAPI( String API){

this.API = API;

}

public void setAllowedNames(String AllowedNames){

this.AllowedNames = AllowedNames;

}

@XmlElement(name="Consumer")

public String getConsumer(){

return Consumer;

}

@XmlElement(name="API")

public String getAPI(){

return API;

}

@XmlElement(name="AllowedNames")

public String getAllowedNames(){

return AllowedNames;

}

}

我的休息界面是

import javax.ws.rs.Consumes;

import javax.ws.rs.POST;

import javax.ws.rs.Path;

import javax.ws.rs.Produces;

import javax.ws.rs.core.MediaType;

import javax.ws.rs.core.Response;

@POST

@Path("/request")

@Consumes({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})

@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})

public Response getRequest(KeyProvision keyInfo){

/* StringReader reader = new StringReader(keyInfo); // this code just leads to an execution failure for some reason

try{

JAXBContext jaxbContext = JAXBContext.newInstance(KeyProvision.class);

Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();

KeyProvision api = (KeyProvision) jaxbUnmarshaller.unmarshal(reader);

System.out.println(api);

} catch(JAXBException e){

e.printStackTrace();

}

*/

String result = "Track saved : " + keyInfo;

return Response.status(201).entity(result).build() ;

// return "success" ;

}

我的XML是

testConsumer

posting

google

我的JSON是

{

"KeyProvision": {

"Consumer": "testConsumer",

"API": "posting",

"AllowedNames": "google",

}

}

我的问题是

1)当我使用JSON时,我一直收到415错误,为什么这不能正确解组?

2)JAXB是否确定了重新定型类型?

解决方法:

415 Unsupported Media Type通常是因为,在您的客户端请求中,您没有设置正确的媒体类型标头.在这种情况下,您需要在XML或JSON请求中使用Content-Type:application / xml或Content-Type:application / json.

JAX-RS依赖于Content-Type请求标头来查找正确的JAX-RS Provider以解组传入的请求.

标签:java,json,rest,jersey,jaxb

来源: https://codeday.me/bug/20190831/1773007.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值