我正在使用Jackson 2和Payara 4,我想使用 Jackson 2 in Payara 5 .
使用JAX-RS,我也想避免更改注释等...
在Payara 5中,默认的Jsonb提供者是Yasson . 任何禁用它并使用 Jackson 的想法?欢迎所有意见/想法:-)
NB: Yasson非常有趣,但处理抽象类或接口序列化/反序列化比放置Jackson注释要复杂一些 . 我目前的理解是它需要实现一个JsonbSerializer / Deserializer,但实际上序列化器/反序列化器只能在字段/方法上使用(为类打开一个问题,这将非常有用) . 无论如何,迁移到Yasson将意味着根据需要实现许多序列化器/反序列化器(对于实体和当然集合),但我想这是一个很难的东西 .
1 回答
您需要将属性
jersey.config.jsonFeature
设置为JacksonFeature
,以便未注册默认的JsonB功能 .您可以通过覆盖
Application.getProperties()
方法在代码中设置它,或者将web.xml中的属性设置为context-param
:您还需要将Jackson依赖项添加到您的应用程序中 - 但您可能已经这样做了,所以忽略它 .
说明:
MOXy功能提供了一个属性
jersey.config.disableMoxyJson
来禁用它 . Payara 5中的JsonB功能默认不提供此类属性,但如果jersey.config.jsonFeature
属性存在且不是JsonBindingFeature
,则不会自行注册 . 同一属性适用于所有Jersey功能,因此将其设置为JacksonFeature
将仅允许注册JacksonFeature .