【问题标题】:Install custom JAX-RS JSON de-/serialization in Wildfly在 Wildfly 中安装自定义 JAX-RS JSON 反/序列化
【发布时间】:2016-10-20 07:33:04
【问题描述】:

假设我们有一个.ear 应用程序包含多个.war.jar 的情况,我们通过封装在一个特定@ 内部的自定义javax.ws.rs.ext.Provider 来控制我们的REST 端点中对象的JSON 反序列化/序列化987654325@ 与我们的.ear 一起部署为一个库。

现在,由于我们即将使用上述自定义反序列化/序列化来扩展部署的数量,我们正在寻找一种减小工件大小的方法,我基本上提出了三种可能性,其中只有两种可行,一种似乎也是详细成为一个真正的解决方案:

  • 部署javax.ws.rs.ext.Provider-artifact,每个.ear 引用它(缺点:多个.ear-artifact 包含相同 .jar 库)。

  • javax.ws.rs.ext.Provider-artifact 安装为全局Wildfly 模块,并通过jboss-deployment-structure.xml 添加依赖项(缺点:可以部署.ear-artifact,但反序列化没有按预期工作因为 Wildfly 模块不是已部署 .ear-application 的类路径的一部分,并且 javax.ws.rs.ext.Provider 不会在部署时自动注册)。

  • javax.ws.rs.ext.Provider-artifact 安装为“普通”Wildfly 模块,并在扩展javax.ws.rs.core.Application 的REST 配置类的getClasses 方法中引用自定义javax.ws.rs.ext.Provider(缺点:我们必须明确列出每个 javax.ws.rs.ext.Provider 和 REST 端点,而不是目前使用的自动发现)。

是否有第四种可能性来完成这项任务,或者对上述三种可能性有什么调整?我没有找到任何解决方案来解决这个(我认为)在 Wildfly 中安装“全局”自定义 javax.ws.rs.ext.Provider 的基本任务。

【问题讨论】:

    标签: java module jax-rs wildfly


    【解决方案1】:

    解决方案很容易找到正确的方法:

    要么:

    1. javax.ws.rs.ext.Provider-artifact 正在通过一个名为 javax.ws.rs.ext.Providers 的文件进行扩展,该文件位于 /META-INF/services 中,其中所有使用 javax.ws.rs.ext.Provider 注释的类都以其完全限定的类名列出。
    2. .ear-artifact jboss-deployment-structure.xml 扩展了两个依赖项:
      1. <module name="<module-name>" slot="main" /> 用于 <deployment> 元素。
      2. <module name="<module-name>" slot="main" services="import" /> 代表.war-artifacts <sub-deployment>-element(s) (隐式)使用javax.ws.rs.ext.Provider-artifact 的类。

    或者:

    1. javax.ws.rs.ext.Provider-artifact 保持原样。
    2. .ear-artifact jboss-deployment-structure.xml 扩展了两个依赖项:
      1. <module name="<module-name>" slot="main" annotations="true" /> 用于 <deployment> 元素。
      2. <module name="<module-name>" slot="main" /> 代表.war-artifacts <sub-deployment>-element(s) (隐式)使用javax.ws.rs.ext.Provider-artifact 的类。

    【讨论】:

    • slot="main" 不是必需的,但 service="import" 是您需要的主要内容。
    猜你喜欢
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    • 2020-10-23
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多