基本环境:
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>
本文详细阐述了在WebLogic环境中部署AMQ应用时遇到的找不到匹配的方法setLifo错误,原因在于WebLogic与AMQ分别使用了不同版本的Apache Commons Lang包。为了解决此问题,提出了通过修改weblogic.xml配置文件优先加载特定包的位置,以及从AMQ的依赖中排除冲突的Commons Lang包等调整措施,从而确保应用能够正常运行。
1034

被折叠的 条评论
为什么被折叠?



