起因
今天早上起来,由于面试官的要求,用MyEclipse2014运行了之前的一个项目准备给他看看的,很不巧,由于这个项目是在MyEclipse10上开发的,转移到MyEclipse2014上之后出现了以下的错误。
解决过程
我尝试过了重新加载jar包,更换JDK和J2EE的包,但是都没有用。所有的运行环境都喝Me10上的一模一样,除了运行的容器以外。但是,问题就出在我的运行容器上,我的MyEclipse默认的运行环境是JDK1.8。但是Spring3.X只能支持到JDK1.7,所以就会出现JDK“环境”的问题,这里的环境不单单指MyEclipse运行的环境,大家不要忘记了哦,web项目是依赖服务器运行的,而服务器同样的也要依赖JDK环境去运行。我没有注意到的是Tomcat的环境仍然是JDK1.8的,所以就一直无法解决这个问题。
最后,将Tomcat和MyEclipse的JDK环境均改为1.7就解决了。
未知问题
再我解决上述问题的过程中又出现了一个新问题。当我用JUnit去测试IOC容器是否能够加载时,我用了两种方法。
1.
<span style="white-space:pre"> </span>ClassPathResource resource = new ClassPathResource("applicationContext.xml"); BeanFactory context = new XmlBeanFactory(resource); Account account = (Account) context.getBean("account");2.
<span style="font-size: 18px; white-space: pre;"> </span><span style="font-size:14px;">ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); Account account = (Account) context.getBean("account");</span>
上述的第一种方法能够顺利的加载IOC容器,但是第二种方法就无法加载IOC容器了。
我猜想ApplicationContext继承自BeanFactory,并且有了诸多的扩展功能,可能是其中的某一个拓展功能出现了问题。
当然这仅仅是我的猜想如果有大神知道确切的原因的话,非常欢迎指正,交流。