java - org.hibernate.tuple.AbstractEntityTuplizer.createProxy 中的空指针异常

标签 java hibernate orm

我正在使用 hibernate 3.2 和 struts 1.2 框架 这是版本 hibenate3.2、asm-2.2.3、cglib-2.1.3 的详细信息 当我尝试加载对象时出现此异常

我正在使用这段代码来加载对象

public Currentprofile findById(java.lang.String id) {
    log.debug("getting Currentprofile instance with id: " + id);
    try {
        Currentprofile instance = (Currentprofile) getSession().get(
            "com.hibermappings.Currentprofile", id);
        return instance;
    } catch (RuntimeException re) {
        log.error("get failed", re);
        throw re;
    }
}

我的hbm文件是这个

<hibernate-mapping>
    <class name="com.hibermappings.Currentprofile" table="currentprofile" catalog="naukrionphone">
    <id name="jobseekerId" type="java.lang.String">
        <column name="jobseekerId" length="50" />
        <generator class="assigned" />
    </id>

    <one-to-one name="referenceDb" lazy="proxy" class="com.hibermappings.ReferenceDb" cascade="all" constrained="false" /> 
    <one-to-one name="registration" lazy="proxy" class="com.hibermappings.Registration" cascade="all" constrained="false" /> 
    <one-to-one name="jobseekerpackagedetails" lazy="proxy" class="com.hibermappings.Jobseekerpackagedetails" cascade="all" constrained="false" /> 

    <property name="keyWords" type="java.lang.String">
        <column name="keyWords" length="5000" />
    </property>
    <property name="totalExp" type="java.lang.String">
        <column name="totalExp" length="100" />
    </property>
    <property name="hqualification" type="java.lang.String">
        <column name="hQualification" length="100" />
    </property>
    <property name="preferedLocation" type="java.lang.String">
        <column name="preferedLocation" length="100" />
    </property>
    <property name="functionalArea" type="java.lang.String">
        <column name="functionalArea" length="1000" />
    </property>
    <property name="expSalary" type="java.lang.String">
        <column name="expSalary" length="100" />
    </property>
    <property name="designation" type="java.lang.String">
        <column name="designation" length="100" />
    </property>
    <property name="resumeTitle" type="java.lang.String">
        <column name="resumeTitle" length="500" />
    </property>
    <property name="profileDetails" type="java.lang.String">
        <column name="profileDetails" length="65535" />
    </property>
    <property name="requiredProfile" type="java.lang.String">
        <column name="requiredProfile" length="65535" />
    </property>
    <property name="activatedOn" type="java.util.Date">
        <column name="activatedOn" length="0" />
    </property>

    <set name="resumes" inverse="true" cascade="save-update">
        <key>
            <column name="jobseekerId" length="50" />
        </key>
        <one-to-many class="com.hibermappings.Resume" />
    </set>

</class>
</hibernate-mapping>

当我在 main 方法中的一个简单的 java 类中使用时,相同的代码运行良好..

异常的完整堆栈跟踪是

java.lang.NullPointerException
 at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)
 at org.hibernate.persister.entity.AbstractEntityPersister.createProxy(AbstractEntityPersister.java:3121)
 at org.hibernate.event.def.DefaultLoadEventListener.createProxyIfNecessary(DefaultLoadEventListener.java:232)
 at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:173)
 at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:87)
 at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:862)
 at org.hibernate.impl.SessionImpl.load(SessionImpl.java:781)
 at org.hibernate.impl.SessionImpl.load(SessionImpl.java:774)
 at com.DAOs.CurrentprofileDAO.getLoad(CurrentprofileDAO.java:71)
 at com.action.JobSekeerManage.viewProfile(JobSekeerManage.java:447)
 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:585)
 at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
 at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
 at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
 at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
 at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
 at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at com.filter.HibernateFilter.doFilter(HibernateFilter.java:24)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:731)
 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
 at java.lang.Thread.run(Thread.java:595)
Error::null

在我的日志文件中我得到了这种类型的异常..

INFO - building session factory
WARN - No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: jar:file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%205.5/webapps/NewNaukriOnPhone/WEB-INF/lib/ehcache-1.1.jar!/ehcache-failsafe.xml
ERROR - CGLIB Enhancement failed: com.hibermappings.ReferenceDb
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
 at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77)
 at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:173)
 at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
 at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
 at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
 at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)
 at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
 at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
 at net.sf.cglib.proxy.Enhancer.(Enhancer.java:69)
 at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:116)
 at org.hibernate.proxy.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:41)
 at org.hibernate.tuple.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:161)
 at org.hibernate.tuple.AbstractEntityTuplizer.(AbstractEntityTuplizer.java:131)
 at org.hibernate.tuple.PojoEntityTuplizer.(PojoEntityTuplizer.java:55)
 at org.hibernate.tuple.TuplizerLookup.create(TuplizerLookup.java:64)
 at org.hibernate.tuple.EntityMetamodel.(EntityMetamodel.java:257)
 at org.hibernate.persister.entity.AbstractEntityPersister.(AbstractEntityPersister.java:412)
 at org.hibernate.persister.entity.SingleTableEntityPersister.(SingleTableEntityPersister.java:108)
 at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
 at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:216)
 at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1176)
 at com.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:66)
 at com.HibernateSessionFactory.getSession(HibernateSessionFactory.java:49)
 at com.DAOs.BaseHibernateDAO.getSession(BaseHibernateDAO.java:15)
 at com.DAOs.PostedprofileDAO.findByProperty(PostedprofileDAO.java:84)
 at com.admin.SendProfileAction.viewProfile(SendProfileAction.java:309)
 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:585)
 at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
 at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
 at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
 at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
 at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
 at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at com.filter.HibernateFilter.doFilter(HibernateFilter.java:24)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:731)
 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
 at java.lang.Thread.run(Thread.java:595)
WARN - could not create proxy factory for:com.hibermappings.ReferenceDb
org.hibernate.HibernateException: CGLIB Enhancement failed: com.hibermappings.ReferenceDb
 at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:132)
 at org.hibernate.proxy.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:41)
 at org.hibernate.tuple.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:161)
 at org.hibernate.tuple.AbstractEntityTuplizer.(AbstractEntityTuplizer.java:131)
 at org.hibernate.tuple.PojoEntityTuplizer.(PojoEntityTuplizer.java:55)
 at org.hibernate.tuple.TuplizerLookup.create(TuplizerLookup.java:64)
 at org.hibernate.tuple.EntityMetamodel.(EntityMetamodel.java:257)
 at org.hibernate.persister.entity.AbstractEntityPersister.(AbstractEntityPersister.java:412)
 at org.hibernate.persister.entity.SingleTableEntityPersister.(SingleTableEntityPersister.java:108)
 at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
 at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:216)
 at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1176)
 at com.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:66)
 at com.HibernateSessionFactory.getSession(HibernateSessionFactory.java:49)
 at com.DAOs.BaseHibernateDAO.getSession(BaseHibernateDAO.java:15)
 at com.DAOs.PostedprofileDAO.findByProperty(PostedprofileDAO.java:84)
 at com.admin.SendProfileAction.viewProfile(SendProfileAction.java:309)
 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:585)
 at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
 at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
 at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
 at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
 at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
 at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at com.filter.HibernateFilter.doFilter(HibernateFilter.java:24)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:731)
 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
 at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
 at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77)
 at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:173)
 at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
 at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
 at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
 at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)
 at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
 at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
 at net.sf.cglib.proxy.Enhancer.(Enhancer.java:69)
 at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:116)
 ... 45 more
ERROR - CGLIB Enhancement failed: com.hibermappings.Companyprofile
java.lang.NoClassDefFoundError
 at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:116)
 at org.hibernate.proxy.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:41)
 at org.hibernate.tuple.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:161)
 at org.hibernate.tuple.AbstractEntityTuplizer.(AbstractEntityTuplizer.java:131)
 at org.hibernate.tuple.PojoEntityTuplizer.(PojoEntityTuplizer.java:55)
 at org.hibernate.tuple.TuplizerLookup.create(TuplizerLookup.java:64)
 at org.hibernate.tuple.EntityMetamodel.(EntityMetamodel.java:257)
 at org.hibernate.persister.entity.AbstractEntityPersister.(AbstractEntityPersister.java:412)
 at org.hibernate.persister.entity.SingleTableEntityPersister.(SingleTableEntityPersister.java:108)
 at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
 at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:216)
 at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1176)
 at com.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:66)
 at com.HibernateSessionFactory.getSession(HibernateSessionFactory.java:49)
 at com.DAOs.BaseHibernateDAO.getSession(BaseHibernateDAO.java:15)
 at com.DAOs.PostedprofileDAO.findByProperty(PostedprofileDAO.java:84)
 at com.admin.SendProfileAction.viewProfile(SendProfileAction.java:309)
 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:585)
 at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
 at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
 at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
 at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
 at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
 at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at com.filter.HibernateFilter.doFilter(HibernateFilter.java:24)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:731)
 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.ru

这里是hibenate3.2,asm-2.2.3,cglib-2.1.3版本的详细信息

最佳答案

如果这在 Web 应用程序之外有效,请检查您的映射文件是否已打包并在容器中运行时创建 SessionFactory 时找到。

更新:类路径中的 ASM 版本错误(至少不是 CGLIB 预期的版本)。究竟使用什么版本的 Hibernate、ASM 和 CGLIB?您使用的是 Hibernate 附带的 JAR 文件吗?查看this thread中给出的解决方案为你工作。另一种选择是从 CGLIB 切换到 Javassist。

更新:您需要 asm-1.5.3.jarcglib-2.1.3.jar(或者用 < strong>cglib-nodep-2.1.3.jar,参见 HHH-2222 )。 使用 Hibernate 发行版的 JAR。

关于java - org.hibernate.tuple.AbstractEntityTuplizer.createProxy 中的空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2432496/

相关文章:

java.lang.ClassNotFoundException : org. hibernate.cfg.AnnotationConfiguration

java - 递归输出

java - 注释器依赖项 : UIMA Type Capabilities?

mysql - 如何在Hibernate中映射Spring Security表

java - 父字段上的 Hibernate 注解

python - 将 Django 模型移动到它们自己的文件中

java - 多个 JVM 与单个应用程序服务器

java - 使用Hibernate将文件保存在mysql数据库中

orm - Intershop EDL 建模 - 如何添加级联删除的依赖关系

php - 如何在 laravel 中执行此操作,子查询其中计数