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

baobao28 2010-09-06 01:06:39
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>
...全文
1514 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
NeXT___ 2013-03-26
  • 打赏
  • 举报
回复
10楼正解!!!
junlin6801599 2012-06-19
  • 打赏
  • 举报
回复
楼上正解,包进去这个包就好了,呵呵
走走—逛逛 2010-11-23
  • 打赏
  • 举报
回复
少这个包org.springframework.expression-3.0.*.RELEASE.jar
howsun_zh 2010-09-09
  • 打赏
  • 举报
回复
呵呵,一错再错啊。原因是如楼上所述,等号两边类型不对,所以抛错。Spring3的例外已经是一个单独的例外处理框架,需要导入org.springframework.expression-3.0.2.RELEASE.jar包,才能将错抛出来。
baobao28 2010-09-09
  • 打赏
  • 举报
回复
那为什么我单执行
new ClassPathXmlApplicationContext("applicationContext.xml");
也报错呢
winos123linux 2010-09-09
  • 打赏
  • 举报
回复
up一下,寻求答案
EngineZhang 2010-09-08
  • 打赏
  • 举报
回复
BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");
引用spring3.0包,执行上面语句时报出异常如下,而引用spring2.0包时未出现异常


你把Context赋给BeanFactory?
wenlin56 2010-09-08
  • 打赏
  • 举报
回复
使用了spring的项目在搭建环境的时候就是喜欢出问题,我到现在都没有搞清楚过这些问题的来龙去脉。先观察是否代码或配置文件有错误。确认没有,就重新导包。还不行?再将以前成功了的项目的包全部拷一份过来?还不行?将代码精简到不能再精简为止(先将以前的代码备份一份,再一点点删代码,一点点调试,有时候最郁闷的就是,的确删了某段代码后,程序可以正常运行了,但是反复观察那段代码,就是没有问题)。就是不行?重启工具!重启计算机!拔掉电源!重装系统!但有时候还是不行,放弃调试吧,再放慢100倍的速度,更小心100倍的态度重新构建项目。
现在这些框架越更新jar越多,而且也不以文件夹的形式细细划分一下,归个类。
哎,还是基础不扎实,强烈强烈呼唤高手们推荐一些这方面的文章或书籍,或过来人的心得!!!谢谢谢谢!!
baobao28 2010-09-08
  • 打赏
  • 举报
回复
我做的是个application程序,已经都引到classpath里面了,就是上面那个方法不好用
ouyangxiaokang6 2010-09-07
  • 打赏
  • 举报
回复
别光引用,把jar包都拷贝到你的WEB-INF的lib下面。再不行就加到你的classpath里面。
baobao28 2010-09-06
  • 打赏
  • 举报
回复
我是在官网上下的spring-framework-3.0.3.RELEASE把里面的包都引了,而且下面这么写就一切正常

ClassPathResource resource = new ClassPathResource("applicationContext2.xml");
BeanFactory factory = new XmlBeanFactory((Resource) resource);



Resource resource = new FileSystemResource("applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(resource);

大步向前001 2010-09-06
  • 打赏
  • 举报
回复
Spring3的包有好多,不是很集中,你估计没有把包导全。Spring2只要有个spring.jar就行了。
baobao28 2010-09-06
  • 打赏
  • 举报
回复
up一下,寻求答案
baobao28 2010-09-06
  • 打赏
  • 举报
回复
这个jar是异常输出的,我引用了也一样保存这个异常
welcome__fei 2010-09-06
  • 打赏
  • 举报
回复
缺少spring的jar包,将jar包复制到WEB-INF/lib目录,如果是spring2.5以前,只要spring.jar。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧