【问题标题】:how to disable Jersey from weblogic 12.2.1如何从 weblogic 12.2.1 禁用泽西岛
【发布时间】:2017-01-12 10:24:51
【问题描述】:

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

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

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

【问题讨论】:

    标签: jax-rs jersey-2.0 weblogic12c


    【解决方案1】:

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

     <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 使用的球衣版本。

    如果您使用 Json,您还需要获取这些 jar,如本文POST to Jersey REST service getting error 415 Unsupported Media Type 中所述:

    • jersey-media-json-jackson
    • jackson-jaxrs-json-provider
    • 杰克逊核心
    • 杰克逊数据绑定
    • 杰克逊注解
    • jackson-jaxrs-base
    • jackson-module-jaxb-annotations
    • 球衣实体过滤

    并将这些行添加到 weblogic.xml 中的 &lt;prefer-application-packages&gt; 部分:

     <package-name>org.codehaus.jackson.*</package-name>
     <package-name>com.fasterxml.jackson.*</package-name>
    

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

    【讨论】:

      猜你喜欢
      • 2015-04-16
      • 2014-10-06
      • 1970-01-01
      • 2011-08-02
      • 1970-01-01
      • 2012-11-03
      • 2015-12-28
      • 2017-05-13
      • 2013-12-21
      相关资源
      最近更新 更多