首页 文章

如何在Payara 5中使用Jackson 2?

提问于
浏览
2

我正在使用Jackson 2和Payara 4,我想使用 Jackson 2 in Payara 5 .

使用JAX-RS,我也想避免更改注释等...

在Payara 5中,默认的Jsonb提供者是Yasson . 任何禁用它并使用 Jackson 的想法?欢迎所有意见/想法:-)

NB: Yasson非常有趣,但处理抽象类或接口序列化/反序列化比放置Jackson注释要复杂一些 . 我目前的理解是它需要实现一个JsonbSerializer / Deserializer,但实际上序列化器/反序列化器只能在字段/方法上使用(为类打开一个问题,这将非常有用) . 无论如何,迁移到Yasson将意味着根据需要实现许多序列化器/反序列化器(对于实体和当然集合),但我想这是一个很难的东西 .

1 回答

  • 4

    您需要将属性 jersey.config.jsonFeature 设置为 JacksonFeature ,以便未注册默认的JsonB功能 .

    您可以通过覆盖 Application.getProperties() 方法在代码中设置它,或者将web.xml中的属性设置为 context-param

    <context-param>
      <param-name>jersey.config.jsonFeature</param-name>
      <param-value>JacksonFeature</param-value>
    </context-param>
    

    您还需要将Jackson依赖项添加到您的应用程序中 - 但您可能已经这样做了,所以忽略它 .

    说明:

    MOXy功能提供了一个属性 jersey.config.disableMoxyJson 来禁用它 . Payara 5中的JsonB功能默认不提供此类属性,但如果 jersey.config.jsonFeature 属性存在且不是 JsonBindingFeature ,则不会自行注册 . 同一属性适用于所有Jersey功能,因此将其设置为 JacksonFeature 将仅允许注册JacksonFeature .

相关问题