如果我们在/WEB-INF/lib目录的类路径中同时有jackson-jaxrs-json提供者和jersey-medi



我正在开发一个由Apache ant builder管理的web应用程序。我们最近将jersey从2.17升级到2.35,以及类路径中的所有相关依赖项。升级后,我注意到一个错误,PSOT方法参数被填充为null。

做了一些挖掘来解决这个问题,发现jersey-media-json-binding.jar可能导致了这个问题。将它从类路径中删除,一切正常。

但我不知道这个问题最初是为什么引起的,这个jersey-media-json-binding.jar库有什么用。

jersey-media-json-binding.jar和jackson-axrs-json-provider-2.12.2.jar是否提供了相同的功能,这是导致问题的原因?

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

最新更新