首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

使用spring3.0初始化时出现有关问题

2012-06-20 
使用spring3.0初始化时出现问题BeanFactory factory new ClassPathXmlApplicationContext(applicationC

使用spring3.0初始化时出现问题
BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
引用spring3.0包,执行上面语句时报出异常如下,而引用spring2.0包时未出现异常


java.lang.NoClassDefFoundError: org/springframework/expression/PropertyAccessor
at org.springframework.context.support.AbstractApplicationContext.prepareBeanFactory(AbstractApplicationContext.java:483)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:400)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.spring.initializtion.Client.test1(Client.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.ClassNotFoundException: org.springframework.expression.PropertyAccessor
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 29 more


配置文件内容如下
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="userDaoForOracle" class="com.spring.initializtion.UserDaoForOracleImpl"></bean>
<bean id="UserDaoForMssql" class="com.spring.initializtion.UserDaoForMssqlImpl"></bean>
<bean id="UserManager" class="com.spring.initializtion.UserManagerImpl">


<property name="userdao" ref="userDaoForOracle"/>
</bean>
</beans>


[解决办法]
缺少spring的jar包,将jar包复制到WEB-INF/lib目录,如果是spring2.5以前,只要spring.jar。
[解决办法]
Spring3的包有好多,不是很集中,你估计没有把包导全。Spring2只要有个spring.jar就行了。
[解决办法]
别光引用,把jar包都拷贝到你的WEB-INF的lib下面。再不行就加到你的classpath里面。
[解决办法]
使用了spring的项目在搭建环境的时候就是喜欢出问题,我到现在都没有搞清楚过这些问题的来龙去脉。先观察是否代码或配置文件有错误。确认没有,就重新导包。还不行?再将以前成功了的项目的包全部拷一份过来?还不行?将代码精简到不能再精简为止(先将以前的代码备份一份,再一点点删代码,一点点调试,有时候最郁闷的就是,的确删了某段代码后,程序可以正常运行了,但是反复观察那段代码,就是没有问题)。就是不行?重启工具!重启计算机!拔掉电源!重装系统!但有时候还是不行,放弃调试吧,再放慢100倍的速度,更小心100倍的态度重新构建项目。
现在这些框架越更新jar越多,而且也不以文件夹的形式细细划分一下,归个类。
哎,还是基础不扎实,强烈强烈呼唤高手们推荐一些这方面的文章或书籍,或过来人的心得!!!谢谢谢谢!!
[解决办法]
BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
引用spring3.0包,执行上面语句时报出异常如下,而引用spring2.0包时未出现异常


你把Context赋给BeanFactory?
[解决办法]
呵呵,一错再错啊。原因是如楼上所述,等号两边类型不对,所以抛错。Spring3的例外已经是一个单独的例外处理框架,需要导入org.springframework.expression-3.0.2.RELEASE.jar包,才能将错抛出来。
[解决办法]
up一下,寻求答案
[解决办法]
少这个包org.springframework.expression-3.0.*.RELEASE.jar

热点排行