[英]415 Unsupported Media Type - Does not work for GET
我有一个休息电话,它返回会话用户的名称
@GET
@Produces(" text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
@Path(value = "getSessionUserName")
public Response getSessionUserName() {
try {
Session session = SessionManager.getCurrentSession();
String details = session.getUserDisplayName().toString();
return Response.ok(details).build();
}
catch(Exception e) {
return handleExceptions(e);
}
每次尝试访问此文件时,都会收到415不支持的媒体类型异常。 我还有其他电话,它们几乎相同,并且工作正常。 我无法弄清楚这个问题。
@Produces
允许使用单个String媒体类型(而不是带有多个逗号分隔的媒体类型的单个字符串)或单个字符串媒体类型的逗号分隔列表
@Produces("application/xml")
-or-
@Produces({"text/html","application/xhtml+xml","application/xml;q=0.9", "*/*;q=0.8"})
另一件事,您可能需要阅读有关内容协商的Wikipedia文章。 我认为您可能不完全了解它的工作原理。 您生产的产品就是浏览器将发送的内容。 就是说,它希望以HTML,XHTML格式返回数据,或者如果这些数据不可用,则返回XML,如果数据不可用,则给我任何东西。
但是在服务器端,您需要确定实际能够产生哪些类型。 您是否可以实际生成HTML,您可以实际生成XHTML,您是否可以实际生成XML? @Produces
批注可与内容协商配合使用。 有“广告”您能够产生什么媒体类型。 客户端应发送一个具有其能够处理的媒体类型的Accept
标头。 那就是谈判发生的地方。 如果客户端需要一种类型,则服务器将无法生成该类型,它将收到406 Not Acceptable错误。 这就是ConNeg的工作方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.