java.lang.NoSuchMethodError: com.test.People.getHibernateLazyInitializer()Lorg/hibernate/proxy/LazyInitializer;
最近系统在linux上跑着跑着就出现如下异常:
有两张实体表,
表A(a1 long,a2 long,a3 varchar1000)
表B(b1 long,b2 long,b3 text)
表B对表A是一对多的关系,
在hibernate中配置了many-to-one的关联关系。
在多线程的情况下,用延迟加载,出现异常
感觉这样做性能影响很大,因为在load表A对象的时候,
带有text字段的B也被load进来了。其实load表A对象,的目的
只是为了用其中的a2 long字段的内容,但是确要去把表A
和带有text字段的表B的内容全部load到内存中来。
在线程的情况下,由于多次调用,导致内存益溢出。
java.lang.NoSuchMethodError: com.test.People.getHibernateLazyInitializer()Lorg/hibernate/proxy/LazyInitializer;
之后就是很多java.lang.reflect.InvocationTargetException
页面上就是null point exception很奇怪
google了一下,找到以下错误:
今天手上碰到一个问题,windows2003跑的很好,但是linux下就不行了,错误是:
java.lang.NoSuchMethodError: com.wsyincai.services.common.hibernate.Cat.getHibernateLazyInitializer()Lorg/hibernate/proxy/LazyInitializer;
而开始一直很正常,页面访问也没问题, 依此判断是hibernate的一个问题,今天早上网上搜索了这个问题,发现这是Hibernate的一个BUG, 详细请看链接 http://opensource.atlassian.com/projects/hibernate/browse/HHH-1293
我测试的服务器用的是linux系统, 据说该问题在windows下不会出现. 公司有个网站用DLOG搭建的已经运行了很久没有任何问题.
根据Hibernate的BUG中网友的评论说, 使用server VM可以解决这个问题, 目前为止还没有测试是否属实.
不过这个问题在BUG库中记录的是去年年底提出的, 这么长时间了还没有得到hibernate的解决, 因为最新版是3.2 RC2同样存在相同的问题. 这让我对Hibernate有些些失望. 当然了,这也不完全是Hibernate的错, 问题出在于cglib这个库上.
然后登录hibernate bug论坛,http://opensource.atlassian.com/projects/hibernate/browse/HHH-1293
居然写下:
java.lang.NoSuchMethodError:
The exception varies with the actual persistent class in use. Most people seem to be using JDK 1.5 and Linux. Some reports say that the exception does not happen from the very start of the application, but it takes "several invocations"/"some time" until it appear, but then it appears very often.
[@more@]