在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 来进行相关方法复写。