gpt4 book ai didi

jax-rs - 如何从 weblogic 12.2.1 禁用 Jersey

转载 作者:行者123 更新时间:2023-12-01 00:37:44 25 4
gpt4 key购买 nike

Weblogic 12.2.1 内部有 Jersey 2.21.1 作为 JAX-RS 2.0 的实现,但我们想使用 Jersey 2.5.1 或最新版本的 Jersey。

解决冲突的一般方法是在配置文件中定义类以从应用程序加载类。

但是当您升级 weblogic 或 Jersey 时,您必须查看类冲突并更改配置,有没有一种方便的方法可以从 weblogic 中禁用 Jersey?

最佳答案

您需要在项目的 web-inf 库中包含 jersey 文件(您可以从 jersey 的网站获取 jersey 和依赖项 zip 文件),还将这些行添加到您的 weblogic.xml 文件中(如本文所示 Using Jersey 2.x web service on Weblogic 12.1.1 ) :

 <container-descriptor>

<prefer-application-packages>
<!-- jsr311 -->
<package-name>javax.ws.rs.*</package-name>
<!-- javassist -->
<package-name>javassist.*</package-name>
<!-- aop repackaged -->
<package-name>org.aopalliance.*</package-name>

<!-- jersey 2 -->
<package-name>jersey.repackaged.*</package-name>
<package-name>org.glassfish.jersey.*</package-name>
<package-name>com.sun.research.ws.wadl.*</package-name>

<!-- hk2 -->
<package-name>org.glassfish.hk2.*</package-name>
<package-name>org.jvnet.hk2.*</package-name>
<package-name>org.jvnet.tiger_types.*</package-name>

</prefer-application-packages>

<prefer-application-resources>
<resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</resource-name>
<resource-name>META-INF/services/javax.ws.rs.ext.RuntimeDelegate</resource-name>

<!-- jersey -->
<resource-name>META-INF/services/org.glassfish.jersey.*</resource-name>
<resource-name>org.glassfish.jersey.*</resource-name>
<resource-name>jersey.repackaged.*</resource-name>

<!-- hk2 -->
<resource-name>META-INF/services/org.glassfish.hk2.*</resource-name>
</prefer-application-resources>
</container-descriptor>

这样做将覆盖 weblogic 12.2.1 使用的 Jersey 版本。

如果您使用 Json,您还需要获取这些 jar,如本文 POST to Jersey REST service getting error 415 Unsupported Media Type 中所示。 :
  • 泽西-媒体-json- jackson
  • jackson -jaxrs-json-provider
  • jackson 核心
  • jackson 数据绑定(bind)
  • jackson 注解
  • jackson 贾克斯基
  • jackson 模块 jaxb 注释
  • Jersey 实体过滤

  • 并将这些行添加到 <prefer-application-packages> weblogic.xml 中的部分:
     <package-name>org.codehaus.jackson.*</package-name>
    <package-name>com.fasterxml.jackson.*</package-name>

    UDPATE - 还值得一提的是,weblogic 12 默认 JSON 绑定(bind)器是 MOXy 而不是 Jersey,这给我带来了一些问题,我最终用 Jersey 替换了提供程序,这使得我的上述更改变得不必要。

    关于jax-rs - 如何从 weblogic 12.2.1 禁用 Jersey ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39323977/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com