2013-04-10 107 views
4

我正在开发一个使用Hibernate框架的Web应用程序。尝试运行webapp时遇到此错误。org.hibernate.HibernateException:无法实例化默认tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]

错误控制台:

Exception caught in Create Account Dataorg.hibernate.HibernateException: Unable to 
instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] 
java.lang.NullPointerException 

我的映射文件(的hbm.xml):

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping> 
<class name="org.vgec.bean.CreateAccount" table="CreateAccount" > 
     <id name="enrollment_number" type="java.lang.String"> 
      <column name="enrollment_number" length="20"/> 
      <generator class="assigned" /> 
     </id> 
     <property name="activation_code" type="java.lang.String"> 
     <column name="activation_code" length="50"/> 
     </property> 


</class> 
</hibernate-mapping> 

DataAccessObject文件代码:

public void addCreateAccount(CreateAccount act) throws Exception { 

    Session session = null; 

    try{ 
     //this step will read hibernate.cfg.xml 
     SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); 
     session = sessionFactory.openSession(); 
     Transaction tx = session.beginTransaction(); 
     session.save(act); 
     tx.commit(); 

    }catch(Exception e) { 
     System.out.println("Exception caught in Create Account Data" + e); 
    }finally{ 
     session.flush(); 
     session.close(); 
    } 

} 

在这里,在上面的代码抛出异常 - 在catch中的字符串显示在控制台中的错误中。

这里是我的Bean或者POJO文件:

package org.vgec.bean; 

public class CreateAccount { 

    private String enrollment_number; 
    private String activation_code; 

    public String getEnrollment_number() { 
     return enrollment_number; 
    } 

    public void setEnrollment_number(String enrollment_number) { 
     this.enrollment_number = enrollment_number; 
    } 

    public String getActivation_code() { 
     return activation_code; 
    } 

    public void setActivation_code(String activation_code) { 
     this.activation_code = activation_code; 
    } 

} 
  • 我已经检查了其他线程解决方案。
  • 我已包含javaassist.jar文件
  • 所有的setter和getter都没有任何拼写错误。我也有java.lang.NullPointerException

这个错误的根本原因是什么?

+0

尝试显式地为CreateAccount定义无参数构造函数 – 2013-04-15 19:46:57

+0

您是否拥有POJO的任何构造函数? – blackpanther 2013-04-16 07:10:08

+0

谢谢! @AlexStamper,blackpanther。这对我很有用。但不知道为什么,我在那之前还没有构造过任何构造函数,那么错误的原因是什么。因为如果我们添加无参数构造函数并不重要 – Parth 2013-04-17 15:17:50

回答

0

这是正确的,你需要有一个不带参数的构造,因此能够发起一个对象与控制器以及服务类或任何你正在使用目的。

+5

这完全不是答案。你甚至可以从它开始的方式看到它。 “这是正确的......”。这显然是对上一个答案的评论。请留下评论和答案作为答案。 – andho 2013-10-16 07:05:55

相关问题