问题描述:
@Produces(MediaType.APPLICATION_JSON) 报出
严重: Mapped exception to response: 500 (Internal Server Error)
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class java.lang.Integer, and Java type class java.lang.Integer, and MIME media type application/json was not found.
简单分析:jersey框架格式转换功能报出异常,无法完成json转换。可能受某个环境配置影响,在其他环境下没有该问题。
具体原因,在执行到jar包的某个类型匹配功能的class文件时,出现问题。具体如下:
private MessageBodyWriter _getMessageBodyWriter(Class c, Type t,
Annotation[] as,
MediaType mediaType, MediaType lookup,
Map> providers) {
List writers = providers.get(lookup);
if (writers == null)
return null;
for (MessageBodyWriter p : writers) {
if (p.isWriteable(c, t, as, mediaType)) {
return p;
}
}
return null;
}
即 匹配成功,执行return p时,无法退出循环,返回p。直到最后执行return null,导致问题