Weblogic10 升级Weblogic12c 关于jersery#1的兼容问题

博客内容讲述了在升级到WebLogic 12c后,由于CXF和Jersey版本冲突导致的应用启动失败问题。作者提到冲突可能源于不同版本的jar包,并提供了官方建议的两种解决jar包冲突的方法:优先加载项目中的jar或自定义加载顺序。在`weblogic.xml`和`weblogic-application.xml`配置文件中,可以通过指定package-name来优先加载特定的jar包。此外,还提到了为了解决权限认证问题,需要在classes目录下复写一个CXF类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在weblogic10中项目是可以进行正常启动,但是在webloigc12c 下报错,升级的相关jar 包是其他同时进行升级的,因为项目中有CXF 相关功能,因此CXF 也需要升级,但是同事到最后一直报如下错误:

weblogic.application.ModuleException: java.lang.NoClassDefFoundError: Could not initialize class org.glassfish.jersey.media.sse.SseFeature", "No stack trace available

------------------------------------------------------------------------------------------------

经过上网查找基本没有有效的处理方法,但是也得知了一些信息就是我们weblogic 12 中引用jersery 与原来的版本有冲突,查了weblogic 官网在配置章节有一些说明,处理jar 包冲突,有2中方式,可以优先加载项目中jar 或者是按照自己的配置进行优先加载。大概他们升级的jar清单有:

cxf-2.7.9
httpasyncclient-4.0-beta3
httpclient-4.5.6
httpclient-cache-4.5.6
httpclient-win-4.5.6
httpcore-4.4.10
httpcore-nio-4.2.4
httpmime-4.5.6
javax.ws.rs-api-2.0
javax.ws.rs-api-2.0-m10
jetty-util-8.1.14.v20131031
abdera-core-1.1.3
abdera-i18n-1.1.3
commons-suplis-2.8.0
log4j-over-slf4j-1.7.32
logback-classic-1.2.7
logback-core-1.2.7
slf4j-api-1.7.32
slf4j-simple-1.7.32
oauth-20100527
oauth-provider-20100527

根据官方的介绍通过报错的信息,一个jar 配置进行制定有限加载处理,

weblogic.xml , weblogic-application.xml 这两个文件官方有介绍,这里不再叙述

weblogic.xml 配置

<container-descriptor>
        <index-directory-enabled>false</index-directory-enabled>
        <prefer-web-inf-classes>false</prefer-web-inf-classes>
    </container-descriptor> 

weblogic-application.xml:

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-application xmlns="http://www.bea.com/ns/weblogic/90" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <prefer-application-packages>
        <package-name>antlr.*</package-name>
        <package-name>org.apache.abdera.*</package-name>
        <package-name>javax.jws.*</package-name>
        <package-name>org.springframework.*</package-name>
        <package-name>javax.xml.soap.*</package-name>
        <package-name>javax.xml.stream.*</package-name>
        <package-name>com.ibm.wsdl.*</package-name>
        <package-name>javax.wsdl.*</package-name>
        <package-name>com.sun.xml.messaging.saaj.*</package-name>
        <package-name>org.codehaus.stax2.*</package-name>
        <package-name>com.ctc.wstx.*</package-name>
        <package-name>org.apache.cxf.*</package-name>
        <package-name>javax.ws.rs.*</package-name> 
    </prefer-application-packages>
</weblogic-application>

同时在在进行权限相关认证报错,需要复写一个类,具体添加在classes 目录下org\apache\cxf\rs\security\oauth\services 来进行相关方法复写。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值