碰到个奇葩事啊,一个spring的项目拿到客户现场部署到resin4中,启动后各种报无法注入bean,找不到bean的问题.出现大量下图的错误:
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ...
除了系统,其他的jdk版本,resin版本,程序包都是在相同测试环境成功部署测试过的,无任何问题.所以想当然的认为可能拿过去的包有问题,马上本地resin测试了一下程序包,果然也是各种报错.哎~马上重新打包再部署还是报错..难道是resin的问题?本地恰巧有一个老版本的resin4.0.13,部署上去一看,正常的...看来果然是resin的问题..
本着bug应该在新版被修复的想法,马上下载最新resin4.0.49,部署依然报错.把测试环境的resin下到本地运行也报错..我的天,这什么鬼~
虽然能确定是resin的问题,但是到底问题出在哪里呢?回忆一下无法注入bean,那么肯定是spring初始化配置文件时,扫描加载各种bean的时候出错,既然找不到,那么肯定是当时没有加载进去.检查一下配置文件web.xml:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext*.xml</param-value>
</context-param>
突然想到一种可能,由于写的是通配符的形式,会不会这里有些问题导致配置文件没有加载到呢?马上改为逗号分隔具体文件名的形式后,重启resin错误消失~到此故障解除...
补:期间是试过tomcat部署的,也是没有任何问题.