发生的事情是您将DefaultConverter应用于返回值而不是 JacksonConverter 的结果。DefaultConverter 将 Serializable 对象转换为 ObjectRepresentation,它是一种二进制表示(对象的序列化形式)。在没有请求特定媒体类型的情况下,转换器逻辑将 Serializable 视为同样可转换为 ObjectRepresentation 或 JacksonRepresentation,并且由于转换器的排序方式,它选择前者。
有几种方法可以解决这个问题。最简单的方法是在请求中明确指定所需的媒体类型 (MediaType.APPLICATION_JSON)。
更强大的解决方案是将 JacksonConverter 替换为您自己的自定义版本,该版本对 null Variant 的评分高于当前值 0.5。如果您想覆盖当前为每次转换创建新 ObjectMapper 的 JacksonRepresentation 行为,或者如果您想使用 Jackson 2.0,则无论如何您都需要这样做。在 restlet-discuss 列表中搜索我关于如何完成此操作的帖子。(特派尔斯)
这种行为很可能已在最近的版本中得到修复,而且我知道与此相关的问题正在进行中,因此在采取任何行动之前,请在问题跟踪器中搜索 JacksonConverter。