-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: Hibernate Duplicate Mapping Exception
PostPosted: Tue Oct 01, 2013 6:24 am 
Newbie

Joined: Tue Oct 01, 2013 4:31 am
Posts: 1
Hello,
I have a problem while initiating Hibernate Session. There is a nullpointerException and then Duplicate Mapping Exception for a table HBM file is shown up.
PLease find the code below:
hibernate-cfg.xml
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/xyz</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">password</property>
   
<!--    <property name="hibernate.c3p0.max_size">20</property>
    <property name="hibernate.c3p0.max_statements">50</property>
    <property name="hibernate.c3p0.min_size">3</property>
    <property name="hibernate.c3p0.timeout">3000</property>
    <property name="hibernate.c3p0.idle_test_period">3000</property>
    <property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>    -->
   
    <mapping resource="com\illustrations\hibernate\hbm\Tbillusrevisions.hbm.xml"/>
    <mapping resource="com\illustrations\hibernate\hbm\Tbuser.hbm.xml"/>
    <mapping resource="com\illustrations\hibernate\hbm\Tbcmm.hbm.xml"/>
    <mapping resource="com\illustrations\hibernate\hbm\Tbuserrole.hbm.xml"/>
    <mapping resource="com\illustrations\hibernate\hbm\Tbprogram.hbm.xml"/>
    <mapping resource="com\illustrations\hibernate\hbm\Tbcmmrevisions.hbm.xml"/>
    <mapping resource="com\illustrations\hibernate\hbm\Tbrole.hbm.xml"/>
    <mapping resource="com\illustrations\hibernate\hbm\Tbillustrations.hbm.xml"/>
    <mapping resource="com\illustrations\hibernate\hbm\Tblmenu.hbm.xml"/>
  </session-factory>
</hibernate-configuration>


Tbillusrevisions.hbm.xml

Code:
<?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">
<!--
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.illustrations.hibernate.pojo.Tbillusrevisions" table="tbillusrevisions" catalog="mbdillustrations">
        <id name="illusRevPk" type="java.lang.Integer">
            <column name="illus_rev_pk" />
            <generator class="increment"></generator>
        </id>
        <many-to-one name="tbillustrations" class="com.illustrations.hibernate.pojo.Tbillustrations" fetch="select">
            <column name="illus_id_fk" />
        </many-to-one>
        <many-to-one name="tbcmmrevisions" class="com.illustrations.hibernate.pojo.Tbcmmrevisions" fetch="select">
            <column name="cmm_rev_fk" />
        </many-to-one>
        <property name="illusRevNum" type="java.lang.Integer">
            <column name="illus_rev_num" />
        </property>
        <property name="illusRevAuthor" type="java.lang.String">
            <column name="illus_rev_author" length="45" />
        </property>
        <property name="illusRevIllustrator" type="java.lang.String">
            <column name="illus_rev_illustrator" length="45" />
        </property>
        <property name="illusRevDate" type="java.util.Date">
            <column name="illus_rev_date" length="10" />
        </property>
        <property name="illusRevComments" type="java.lang.String">
            <column name="illus_rev_comments" length="45" />
        </property>
        <property name="illusRevStatus" type="java.lang.String">
            <column name="illus_rev_status" length="45" not-null="true" />
        </property>
    </class>
</hibernate-mapping>


HibernateSessionFactory.java

Code:
public class HibernateSessionFactory {

    /**
     * Location of hibernate.cfg.xml file. Location should be on the classpath
     * as Hibernate uses #resourceAsStream style lookup for its configuration
     * file. The default classpath location of the hibernate config file is in
     * the default package. Use #setConfigFile() to update the location of the
     * configuration file for the current session.
     */
    private static String CONFIG_FILE_LOCATION = "com/illustrations/hibernate/hibernate.cfg.xml";
    private static final ThreadLocal<Session> threadLocal = new ThreadLocal<>();
    private static Configuration configuration = new Configuration();
//    private static Class hiberClass = HibernateSessionFactory.class;
//    public static final String KEY_NAME = hiberClass.getName();
    private static org.hibernate.SessionFactory sessionFactory;
    private static String configFile = CONFIG_FILE_LOCATION;

//    static {
//        try {
//            configuration.configure(configFile);
//            sessionFactory = configuration.buildSessionFactory();
//        } catch (Exception e) {
//            System.err.println("%%%% Error Creating SessionFactory %%%%");
//        }
//    }
    private HibernateSessionFactory() {
    }

    /**
     * Returns the ThreadLocal Session instance. Lazy initialize the
     * <code>SessionFactory</code> if needed.
     *
     * @return Session
     * @throws HibernateException
     */
    public static Session getSession() throws HibernateException {
        Session session = (Session) threadLocal.get();
        if (session == null || !session.isConnected()) {
            if (sessionFactory == null) {
                try {
                    configuration.configure(CONFIG_FILE_LOCATION);
                    sessionFactory = configuration.buildSessionFactory();
                } catch (Exception e) {
                    System.err.println("%%%% Error Creating SessionFactory %%%%");
                    e.printStackTrace();
                }
            }
            session = sessionFactory.openSession();
            threadLocal.set(session);
        }
        return session;
    }

    /**
     * Rebuild hibernate session factory
     *
     */
    public static void rebuildSessionFactory() {
        try {
            Configuration configure = configuration.configure(configFile);
            sessionFactory = configuration.buildSessionFactory();
        } catch (Exception e) {
            System.err
                    .println("%%%% Error Creating SessionFactory %%%%");
            e.printStackTrace();
        }
    }

    /**
     * Close the single hibernate session instance.
     *
     * @throws HibernateException
     */
    public static void closeSession() throws HibernateException {
        Session session = (Session) threadLocal.get();
        threadLocal.set(null);

        if (session != null) {
            session.close();
        }
    }

    /**
     * return session factory
     *
     */
    public static org.hibernate.SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    /**
     * return session factory
     *
     * session factory will be rebuilded in the next call
     */
    public static void setConfigFile(String configFile) {
        HibernateSessionFactory.configFile = configFile;
        sessionFactory = null;
    }
}


Finally the Exception :
Code:
Struts Problem Report
Struts has detected an unhandled exception:

Messages: 
File: com/illustrations/hibernate/dao/HibernateSessionFactory.java
Line number: 59


--------------------------------------------------------------------------------

Stacktraces
java.lang.NullPointerException
    com.illustrations.hibernate.dao.HibernateSessionFactory.getSession(HibernateSessionFactory.java:59)
    com.illustrations.hibernate.dao.BaseHibernateDAO.getSession(BaseHibernateDAO.java:13)
    com.illustrations.hibernate.dao.TbuserDAO.findUser(TbuserDAO.java:187)
    com.illustrations.actions.login.LoginAction.execute(LoginAction.java:51)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

[b]And in the Console:[/b]
%%%% Error Creating SessionFactory %%%%
org.hibernate.InvalidMappingException: Could not parse mapping document from resource com\illustrations\hibernate\hbm\Tbillusrevisions.hbm.xml
   at org.hibernate.cfg.Configuration.addResource(Configuration.java:569)
   at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587)
   at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)
   at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534)
   at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508)
   at org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
   at com.illustrations.hibernate.dao.HibernateSessionFactory.getSession(HibernateSessionFactory.java:52)
   at com.illustrations.hibernate.dao.BaseHibernateDAO.getSession(BaseHibernateDAO.java:13)
   at com.illustrations.hibernate.dao.TbuserDAO.findUser(TbuserDAO.java:187)
   at com.illustrations.actions.login.LoginAction.execute(LoginAction.java:51)
   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:601)
   at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450)
   at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:289)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:252)
   at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167)
   at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
   at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
   at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239)
   at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239)
   at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
   at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:161)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189)
   at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
   at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
   at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:563)
   at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
   at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
   at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
   at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
   at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
   at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
   at java.lang.Thread.run(Thread.java:722)
Caused by: org.hibernate.DuplicateMappingException: Duplicate class/entity mapping com.illustrations.hibernate.pojo.Tbillusrevisions
   at org.hibernate.cfg.Mappings.addClass(Mappings.java:118)
   at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:145)
   at org.hibernate.cfg.Configuration.add(Configuration.java:669)
   at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:504)
   at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)
   ... 78 more


PLease provide some help


Top
 Profile  
 
 Post subject: Re: Hibernate Duplicate Mapping Exception
PostPosted: Tue Oct 01, 2013 2:01 pm 
Hibernate Team
Hibernate Team

Joined: Tue Sep 18, 2012 5:03 am
Posts: 36
Location: Fort Wayne, Indiana, USA
Is one of the other *.hbm.xml mapping files declaring the com.illustrations.hibernate.pojo.Tbillusrevisions class?


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.