MAVEN项目线上发布出现的问题之一

某台机器JBOSS启动正常,但是运行应用过程中报错:

 

这是由两个bean属性不一致导致的。定位是Beanutils类加载的包不一致,判断lib下是否加载了不同版本的含有beanutils的包:再应用的WAR包的LIB目录下,查找到两个包:

解压后可看到同类路径下的Beanutil类,但是两个内容不一样。JBOSS启动,加载顺序不定导致。我们在线下,预发环境,加载的都是1.6的JAR包,这个就是程序中引用的正确版本。但是线上发布的时候,JBOSS加载的是1.8的版本,这就会导致程序出错,不停的抛出错误日志。

解决办法:

查看依赖的JAR包树,查询依赖这两个JAR包的入口:

如图所示:这两个版本是由其它包依赖引入的。查找主POM的配置,发觉commons-configuration这个其实是非必需的,去掉。再重新打包即可

另外,如果说确实这个包是你需要的,则可采用exclude做排除:

 

posted @ 2011-06-22 12:43  小菜豆  阅读(170)  评论(0编辑  收藏  举报