Java 在Hibernate上遇到ClassCastException,但在tomcat上偶尔遇到

Java 在Hibernate上遇到ClassCastException,但在tomcat上偶尔遇到,java,hibernate,Java,Hibernate,我想这里没有人能帮上忙,但如果你有任何建议,我将不胜感激。基本上,由于将Tomcat(7)迁移到Java7,我们有时会遇到以下异常。唯一能解决这个问题的是重启tomcat。我不能在我的机器上本地复制它,所以我知道所有的映射等都很好。我想知道有没有人有什么想法 org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of hub.app.model.DocumentFolder.

我想这里没有人能帮上忙,但如果你有任何建议,我将不胜感激。基本上,由于将Tomcat(7)迁移到Java7,我们有时会遇到以下异常。唯一能解决这个问题的是重启tomcat。我不能在我的机器上本地复制它,所以我知道所有的映射等都很好。我想知道有没有人有什么想法

org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of hub.app.model.DocumentFolder.id
 at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:171)
 at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:183)
 at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:3596)
 at org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:3312)
 at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:181)
 at org.hibernate.engine.CascadingAction$9.noCascade(CascadingAction.java:348)
 at org.hibernate.engine.Cascade.cascade(Cascade.java:139)
 <snip>
 Caused by: 
 java.lang.IllegalArgumentException: java.lang.ClassCastException@18b0170
 at sun.reflect.GeneratedMethodAccessor754.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:606)
 at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:145)
 at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:183)
 at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:3596)
 at org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:3312)
 at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:181)
 at org.hibernate.engine.CascadingAction$9.noCascade(CascadingAction.java:348)
 at org.hibernate.engine.Cascade.cascade(Cascade.java:139)
 at org.hibernate.event.def.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:131)
 at org.hibernate.event.def.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:122)
 at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:65)
 at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:35)
 at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:969)
 at org.hibernate.impl.SessionImpl.executeUpdate(SessionImpl.java:1136)
 at org.hibernate.impl.QueryImpl.executeUpdate(QueryImpl.java:94)
 at org.hibernate.ejb.QueryImpl.executeUpdate(QueryImpl.java:49)
 at hub.app.model.dao.EntityAccessCountHibernateDAO.addAccessCount(EntityAccessCountHibernateDAO.java:33)
 at hub.app.model.dao.EntityAccessCountHibernateDAO$$EnhancerByGuice$$3ea802fe.CGLIB$addAccessCount$0(<generated>)
 at hub.app.model.dao.EntityAccessCountHibernateDAO$$EnhancerByGuice$$3ea802fe$$FastClassByGuice$$64e6ae4b.invoke(<generated>)
 at com.google.inject.internal.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
 at com.google.inject.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:64)
 at com.wideplay.warp.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:68)
 at com.google.inject.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:64)
 at com.google.inject.InterceptorStackCallback.intercept(InterceptorStackCallback.java:44)
 at hub.app.model.dao.EntityAccessCountHibernateDAO$$EnhancerByGuice$$3ea802fe.addAccessCount(<generated>)
 at hub.app.service.hotstuff.HotStuffService.recordAccess(HotStuffService.java:40)

最有可能的是,
DocumentFolder.id
中的一些文件是空的?Hi-Rosdi-不,我不这么认为-它要么每次都失败,要么(对于同一个实体)一旦tomcat重新启动,在下一次服务器重新启动之前,您应该向我们展示
EntityAccessCountHibernateDAO.java第33行中的内容,即它启动的位置。如果从不同的类加载器加载一个类,则通常会发生ClassCastException。如果类路径中有相同库的两个不同版本,事情可能会变得极其复杂。所以我打开-verbose:class并分析是否有我不期望的jar。
Caused by: org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of hub.app.model.DocumentFolder.id
    at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:171)
    at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:183)
    at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:3596)
    at org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:3312)
    at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:181)
    at org.hibernate.engine.CascadingAction$9.noCascade(CascadingAction.java:348)
    at org.hibernate.engine.Cascade.cascade(Cascade.java:139)
    at org.hibernate.event.def.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:131)
    at org.hibernate.event.def.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:122)
    at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:65)
    at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
    at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
    at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
    at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:54)
    ... 19 more
 Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:145)
    ... 33 more