jersey@Produces类型转换问题

问题描述:
@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,导致问题

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐