【问题标题】:Jackson JSON provider for cxf:rsServer用于 cxf:rsServer 的 Jackson JSON 提供程序
【发布时间】: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 注释

标签: json rest jackson cxf


【解决方案1】:

我不太了解 Camel,但通常 Jackson 不需要根注释,这与 JAXB 不同(部分原因是 JSON 结构不需要根类型的名称),因此您似乎不太可能使用此类注释。 我猜是因为某种原因注册没有成功。

【讨论】:

    猜你喜欢
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 2018-05-30
    • 2020-12-31
    • 1970-01-01
    相关资源
    最近更新 更多