Jersey通过查看accept标头来识别请求.我有一个只接受text/*的请求 - 我如何强制响应是例如application/json?
@POST
@Path("/create")
@Produces(MediaType.APPLICATION_JSON)
public MyResponseObject create() {
return new MyResponseObject();
}
Run Code Online (Sandbox Code Playgroud)
如果请求被指向创建只接受text/*jersey将返回500.有没有办法解决这个问题?(我无法更改请求接受标头).
Jersey还通过您可以在web.xml中配置的ResourceConfig属性PROPERTY_MEDIA_TYPE_MAPPINGS或通过Jersey API以编程方式支持,如下所示:
DefaultResourceConfig rc = new DefaultResourceConfig(MyResource.class);
rc.getMediaTypeMappings().put("json", MediaType.APPLICATION_JSON_TYPE);
rc.getMediaTypeMappings().put("xml", MediaType.APPLICATION_XML_TYPE);
SimpleServerFactory.create("http://localhost:9090", rc);
Run Code Online (Sandbox Code Playgroud)
您可以通过将.json或.xml后缀添加到URL来强制进行内容类型协商.
| 归档时间: |
|
| 查看次数: |
3660 次 |
| 最近记录: |