【发布时间】:2015-12-13 00:52:16
【问题描述】:
我的日志中出现以下错误:
org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor aroundWriteTo
Grave: MessageBodyWriter not found for media type=application/json, type=class com.sample.MyDTO, genericType=class com.sample.MyDTO.
一般来说,这是由于缺少注册的MessageBodyWriter 造成的,但在我的情况下,我确实在类路径中有jersey-media-proxy JAR(及其所有依赖项)。如果这有助于调试,我确认在部署我的 Web 应用程序时调用了 MoxyJsonFeature 的配置方法。
我准确地说我使用的是 Jersey v2.21。我的 Web 应用程序部署在 Tomcat 8.0.26 上。
有什么想法吗?
谢谢, 迈克尔
【问题讨论】:
-
玩了一段时间后,我能够重现问题的唯一方法是 not 有一个无参数构造函数 和 一个构造函数DTO 类中的 arg。您的 DTO 课程是否属于这种情况?
-
我有一个默认和非默认的构造函数。
-
这很奇怪。这是我第一次看到这个问题。我很长一段时间都在使用 Jersey 和 Moxy,没有任何问题。
-
我不知道,尝试切换到
jersey-media-json-jackson看看问题仍然存在。只是看看它是否是一个 MOXy 问题。如果您不从类路径中删除 MOXy,则需要注册JacksonFeature -
@peeskillet 它适用于杰克逊。看起来像 MOXy 的问题。
标签: java json jersey-2.0