【发布时间】:2015-06-13 20:18:30
【问题描述】:
我正在使用 Camel 的 cxfrs 组件实现 REST 服务。我在 inets 上看到的各种示例说我可以让服务使用 cxf:providers 标签返回相关对象的 JSON 序列化,就像这样
<cxf:rsServer id="rsServer" address="${CXFserver}${service}" serviceClass="org.trinityhealth.esb.PersonService"
loggingFeatureEnabled="true" loggingSizeLimit="20">
<cxf:providers>
<bean id="jsonHandler" class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider" />
</cxf:providers>
</cxf:rsServer>
这可以很好地编译和部署。但无论我尝试使用此配置的哪种变体,服务都会以“没有为响应类 Person 找到消息正文编写器”进行响应。 Person 类中有一个 "@XmlRootElement(name = "Person")" 注释,如果我想要生成 XML,我想这很好。但我不 - 我想要 JSON。 Jackson 有大量注释,我是否需要在 Person 类中添加一个才能让我的服务实现我希望 Jackson 编写器序列化该类?
【问题讨论】:
-
我从来没有用骆驼做服务器。使用 CXF,JacksonJsonProvider 应该能够序列化普通对象。也可以尝试
JacksonJaxbJsonProvider处理 Jaxb 注释