现在的位置: 首页 > 综合 > 正文

解决:AMQ应用部署到weblogic服务器上出现“找不到匹配的方法setLifo”

2019年06月18日 ⁄ 综合 ⁄ 共 880字 ⁄ 字号 评论关闭

基本环境:

spring 3.1.0

amp 5.9.x

weblogic 10.3.5

jdk 1.6.x

linux 2.6

在将APP部署到weblogic上时,无法启动,提示”找不到匹配的方法setLifo“。

原因是weblogic与amp都用到了apache commons lang包,且依赖的版本号不同,存在兼容问题。

其中,amq依赖commons-lang包只是在组件console中输出日志,其他组件输出的日志我们还是可以依赖log4j或logback来输出到我们制定的目录和文件上。

因此,我们可以做如下调整,让APP跑起来:

1、修改weblogic.xml优先加载jar包位置:

<?xml version="1.0"?>
<weblogic-web-app>
	<container-descriptor>  
        <prefer-application-packages>
        	<package-name>org.apache.*</package-name>
        </prefer-application-packages>  
    </container-descriptor>  
	<session-descriptor>
		<!-- 避免多个应用部署到同一台weblogic时, session cookie相互覆盖 -->
		<cookie-name>JSESSIONID_XXX_WEB</cookie-name>
	</session-descriptor>
</weblogic-web-app>

2、从maven amq-console的依赖中将commons-lang包排除:

<dependency>
           <groupId>org.apache.activemq</groupId>
			<artifactId>activemq-console</artifactId>
			<exclusions>
				<exclusion>
					<artifactId>commons-lang</artifactId>
					<groupId>commons-lang</groupId>
				</exclusion>
			</exclusions>
       </dependency>

抱歉!评论已关闭.