我有以下 Jersey 方法将 HTTP 标头包装在 JavaSet<String>
对象中。
@GET
@Path("header-info")
@Produces(MediaType.TEXT_XML)
public Response getAllHeaders() {
Map<String, List<String>> headerMap = headers.getRequestHeaders();
Set<String> headerNames = headerMap.keySet();
Set<String> values = new HashSet<String>();
for(String header : headerNames){
String headerValue = headerMap.get(header).get(0);
values.add(headerValue);
}
return Response.status(200).entity(values).build();
}
我想返回 XML 或 HTML MIME 类型的字符串集。但是当我访问链接时,我得到了错误
A message body writer for Java class java.util.HashSet, and Java type class java.util.HashSet, and MIME media type text/xml was not found
我猜这是因为响应中返回的对象Set<String> values
没有 XML 的消息正文编写器。如果我使用 HTML MIME 类型,也会发生同样的错误:
@Produces(MediaType.TEXT_HTML)
我注意到 Jersey 中有一个MessageBodyWriter接口,可以将任何对象写入 XML。但是我需要实现这个接口来写入 XML。我还需要再次实现它以写入 HTML。有没有一种快速简便的方法可以在 Jersey 中将 Java 对象直接序列化为 XML 和 HTML?