如何找到球衣使用的反序列化器
How to find the deserializer used by jersey
在我们的球衣项目中,我们使用了 2 个 json 提供商,Moxy 和 Jackson。我想知道哪个提供商被用来反序列化我的有效负载,无论是 Moxy 还是 Jackosn。有什么办法可以找到吗?
有 种方法可以找到它,但没有必要,因为通常会使用相同的方法。 Jersey (2.x) 的设置方式是,MOXy (jersey-media-moxy
) 是默认提供程序。如果你在类路径上都有,没有任何进一步的配置,将使用 MOXy。
有几种方法可以禁用 MOXy。显式注册 JacksonFeature
(jersey-media-json-jackson
附带),或将 属性 ServerProperties.MOXY_JSON_FEATURE_DISABLE
设置为 true
但为了完整起见,我可以想到几种方法来确定正在使用的方法
- 触发异常并在映射器中处理。检查堆栈跟踪。 (我知道不是很优雅)
- 为
ObjectMapper
写一个ContextResolver
。如果使用 Jackson,将调用 getContext
方法(只需添加一个 s.o.p)。
- 您可以通过可注入的
Providers
接口检索提供程序。
可能还有其他方法,但就像我说的那样,似乎没有必要。你应该已经知道了。
在我们的球衣项目中,我们使用了 2 个 json 提供商,Moxy 和 Jackson。我想知道哪个提供商被用来反序列化我的有效负载,无论是 Moxy 还是 Jackosn。有什么办法可以找到吗?
有 种方法可以找到它,但没有必要,因为通常会使用相同的方法。 Jersey (2.x) 的设置方式是,MOXy (jersey-media-moxy
) 是默认提供程序。如果你在类路径上都有,没有任何进一步的配置,将使用 MOXy。
有几种方法可以禁用 MOXy。显式注册 JacksonFeature
(jersey-media-json-jackson
附带),或将 属性 ServerProperties.MOXY_JSON_FEATURE_DISABLE
设置为 true
但为了完整起见,我可以想到几种方法来确定正在使用的方法
- 触发异常并在映射器中处理。检查堆栈跟踪。 (我知道不是很优雅)
- 为
ObjectMapper
写一个ContextResolver
。如果使用 Jackson,将调用getContext
方法(只需添加一个 s.o.p)。 - 您可以通过可注入的
Providers
接口检索提供程序。
可能还有其他方法,但就像我说的那样,似乎没有必要。你应该已经知道了。