spring管理sessionFactory问题!(以解决,有同样问题可参考)

软件和网站开发以及相关技术探讨
回复
angelus
帖子: 445
注册时间: 2007-08-27 17:31

spring管理sessionFactory问题!(以解决,有同样问题可参考)

#1

帖子 angelus » 2007-12-05 19:57

我大概提下,看有朋友和我的问题是否一样!

环境-ubuntu7.10 ---- eclipse3.3+myeclipse6.0+jdk1.6.02+tomcat6.0.14

在spring中配置文件中写入<sessionFactory>使用的是松散结合,就是带入hibernate的主配置文件!

不过,事例化配置文件时候,总是不能够事例化sessionFactory。

在win下一切OK。开始以为是 spring2.0的问题,就实验重新做了次工程,导入最新的spring2.0和hibernate3.2
结果错误一样,很郁闷,在win下编译的工程,放到Ubuntu下的tomcat运行良好!
如果有同样错误的,请发表下解决方法!
不然只有在WIN下从新下新版本的GUI忙活了,还是很喜欢在ubuntu下写东西的!
上次由 angelus 在 2007-12-07 21:02,总共编辑 1 次。
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
angelus
帖子: 445
注册时间: 2007-08-27 17:31

#2

帖子 angelus » 2007-12-05 19:59

<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>/com/ascent/bean/hibernate.cfg.xml</value>
</property>
</bean>


就是这种管理方法!!!
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
angelus
帖子: 445
注册时间: 2007-08-27 17:31

#3

帖子 angelus » 2007-12-05 20:15

先在WIN中使用下最新版本的GUI看是否是版本的问题!
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
头像
reulis
帖子: 156
注册时间: 2007-05-26 11:50

#4

帖子 reulis » 2007-12-06 10:47

把错误贴出来。


<value>/com/ascent/bean/hibernate.cfg.xml</value>
估计是这行问题,你用文件位置来定位,linux会怎么解析?
用classpath看下!
---------------------------------------------------------------------
我终身奋斗的最低革命纲领:农妇__山泉__有点儿田
angelus
帖子: 445
注册时间: 2007-08-27 17:31

#5

帖子 angelus » 2007-12-06 15:21

并不是配置文件不能找到的问题,是无法创建sessionFactory
早上在win下找到最新的eclipse和Myeclipse用了下,不能加入表的影射,不然出这种错误!org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Invocation of init method failed;
nested exception is java.lang.NoSuchMethodError:
org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V

和ubuntu上的问题又不同,以前做的低版本的spring1.2+hibernate3.1工程,却没有任何问题!
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
头像
reulis
帖子: 156
注册时间: 2007-05-26 11:50

#6

帖子 reulis » 2007-12-06 18:02

既然这样子的话估计就是jar包版本的问题了,spring和hibernate都有用到asm包,两个的版本有可能不一致,另外这个包还会被cglib用,而且两者又各自使用cglib, 所以一起的话很容易出现问题。至于win下面没有问题,很可能是你的classpath里面的jar包不是很干净,比如两个版本,或者不同的包里面都有这个class,这样的话jar包的顺序都有可能引起不同的问题, 所以你得仔细检查一下,看看用的是cglib-full包还是用的glib-nodep包,或者其他。

记得以前在spring的官方论坛上看到过类似的问题,楼主也可以去搜索一下。

呵呵,仅供参考,祝你好运!
---------------------------------------------------------------------
我终身奋斗的最低革命纲领:农妇__山泉__有点儿田
angelus
帖子: 445
注册时间: 2007-08-27 17:31

#7

帖子 angelus » 2007-12-07 20:59

确实是那样,根据reulis的思路在网上找到了解决方法,可能最新高版本的MYeclipse才有的问题把!


原因是 Spring 和 Hibernate 共用的一些 jar 文件发生了版本冲突, 删除发布后的目录下的 WEB-INF/lib/asm-2.2.3.jar 就可以解决这个问题了.

asm-2.2.3.jar
asm.jar
asm-attrs.jar
asm-commons-2.2.3.jar
asm-util-2.2.3.jar
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
angelus
帖子: 445
注册时间: 2007-08-27 17:31

#8

帖子 angelus » 2007-12-07 21:01

多谢楼上的提醒,困扰几天的问题才解决!
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
回复