如果在/WEB-INF/lib目录的类路径中同时存在jackson-jaxrs-json-provider和jersey-media-json-binding.jar,会发生什么情况?

6tqwzwtp  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(134)

我正在处理一个由Apache ant builder管理的Web应用程序。我们最近将jersey从2.17升级到2.35,并在类路径中升级了所有相关的依赖项。升级后,我注意到一个错误,其中PSOT方法参数填充为空。
为解决此问题进行了一些深入研究,发现jersey-media-json-binding.jar可能是导致此问题的原因。将其从类路径中删除,一切正常。
但是我不知道为什么这个问题会首先引起,这个jersey-media-json-binding.jar库有什么用。
jersey-media-json-binding.jar和jackson-jaxrs-json-provider-2.12.2.jar是否提供了相同的功能,而这正是导致此问题的原因?

fdbelqdn

fdbelqdn1#

JSON-B是新的 default 提供者。(没有显式注册其他提供者),它 * 将 * 被使用。默认值过去是MOXy。如果您希望使用Jackson而不管类路径上是哪个提供者,只需在应用程序中注册JacksonFeature。所有这三个提供者都用于JSON支持,但它们在以下方面都有不同的行为此外,所有这些提供程序模块都有自动注册功能,这意味着您不必显式地注册它们。但是,有一个预定义的行为来决定哪一个模块优先(如果存在多个)。因此,如果您希望使用特定的一个特性,不管类路径上有哪些特性,只需注册它的特性(即JacksonFeatureJsonBindingFeatureMoxyJsonFeature)。

相关问题