java - 如何找到 Jersey 使用的反序列化器

标签 java api jersey jackson moxy

在我们的 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_DISABLEtrue

但为了完整起见,我可以想到几种方法来确定正在使用的是哪种方法

  • 触发异常并在映射器中处理它。检查堆栈跟踪。 (我知道不是很优雅)
  • ObjectMapper 编写一个ContextResolver。如果使用 Jackson,将调用 getContext 方法(只需添加一个 s.o.p)。 See here
  • 您可以通过可注入(inject)的Providers 接口(interface)检索提供者。 See here

可能还有其他方法,但正如我所说,这似乎并不是必需的。你应该已经知道了。

关于java - 如何找到 Jersey 使用的反序列化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32222240/

相关文章:

java - 如何使用具有异构 View 类型的项目触摸助手?

python - 如何连接到http ://localhost:9000/api/v1/data from jupyter in docker

java - 如何使用 Jersey 分 ionic 资源表示

Java Jersey / jackson : return dynamic JSON properties

java - 判断文件是否重复

java - EditText = null 对象引用?

Java - 知道在 attr 中包含我当前对象的 obj

css - Rails 中的 Swagger 用户界面

用于在联系人在线时收到通知的 Android Whatsapp API

java - Swagger 的 JSON 文件上的空值