我正在使用 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 作者序列化该类?
最佳答案
我不太了解 Camel,但通常 Jackson 不需要根注释,与 JAXB 不同(部分是因为 JSON 结构不需要根类型的名称),所以您似乎不太可能需要这样的注释。 我猜测注册由于某种原因没有成功。
关于json - cxf :rsServer 的 Jackson JSON 提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29522020/