使用JAXB实现REST-Webservice,我们有几种产生输出的方法。
包含所有这些方法的类都用注释@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
。如果请求通过了快乐路径(没有错误发生),我们将在我们的方法中返回POJO,并且JAXB根据客户端通过请求标头中的请求将这些对象动态地编组到application/xml
或中。application/json
Accept: application/xxx;
我的问题是如何获取请求的内容类型,因为如果发生错误,我们将抛出一个WebApplicationException
带有响应的响应,该响应应包含格式化为请求的内容类型的自定义错误消息。
注入 @HeaderParam("Accept")
public Response doSomething(@HeaderParam("Accept") String accept) {
// you may need to parse it as the value is not always as
// simple as application/json
}
注入HttpHeaders
,您有几种选择
public Response doSomething(@Context HttpHeaders headers) {
String accept = headers.getHeaderString(HttpHeaders.ACCEPT);
List<MediaType> acceptableType = headers.getAcceptableMediaTypes();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句