论坛首页 Java版 Spring

Spring2.5和hibernate3.2.4的asm包冲突

浏览 1626 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2007-11-23
spring2.5里面带了asm包是2.2.3,而hibernate3.2.4里面用的包版本比较老。
如果使用了spring2.5中新的asm包,会出现org.objectweb...的某些类或者方法找不到

解决方法:升级spring到2.5的时候,不要升级asm的包,使用hibernate的包。
不知道用spring2.5和其它版本的hibernate集成时会不会有类似问题。
   
时间:2007-11-23
这个问题应该Spring 2.0以来一直存在的。

hibernate 3.2 中cglib 2.1要用到 asm 1.x。。。而spring 2中使用的是asm 2.x。

www.sourcelabs.org 提供的sash 包是一个解决方案。

另外,自己也可以用相应的版本的cglib-nodep.jar(cglib网站提供了这个版本,已经将asm 打进包了)替换cglib.jar。

从Hibernate roadmap上可以看到,3.2.6会对cglib , asm进行升级。
   
0 请登录后投票
时间:2007-12-19
对 2.0的时候就有这个问题 里面的一个方法好像新版本的asm里头变了
   
0 请登录后投票
时间:2008-02-01
是哦,好象是 org.objectweb.asm.ClassVisitor.visit这个方法,构造函数变了好象一个是:
string,string,string[],string 另一个是:
string,string,string,string[];
   
0 请登录后投票
时间:2008-02-22
3.2.6已经发布,asm仍然使用的1.x,鉴定完毕。
hantsy 写道
这个问题应该Spring 2.0以来一直存在的。

hibernate 3.2 中cglib 2.1要用到 asm 1.x。。。而spring 2中使用的是asm 2.x。

www.sourcelabs.org 提供的sash 包是一个解决方案。

另外,自己也可以用相应的版本的cglib-nodep.jar(cglib网站提供了这个版本,已经将asm 打进包了)替换cglib.jar。

从Hibernate roadmap上可以看到,3.2.6会对cglib , asm进行升级。

 

   
0 请登录后投票
时间:2008-02-25
我做项目的时候也发现这个问题了,还好spring的兼容性比较好,老的1.5.3还是能继续使用
   
0 请登录后投票
时间:2008-05-07
我搞了一会儿,解决办法是修改asm-2.2.3.jar中的ClassVisitor类,添加一个方法
  void visit (
	    int version,
	    int access,
	    String name,
	    String superName,
	    String[] interfaces,
	    String sourceFile);

然后把asm-2.2.3.jar和asm.jar中的ClassVisitor类全删掉,并把修改好的ClassVisitor类,放到任意一个包里,同时要使用cglib-nodep-2.1_3.jar这个文件,不要用cglib2.1_3.jar这个文件,就OK了
   
0 请登录后投票
论坛首页 Java版 Spring

跳转论坛:
JavaEye推荐
    快速回复 引用上一条消息 (Alt+S)