-->
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.  [ 3 posts ] 
Author Message
 Post subject: (Newbie) Mapping Exception
PostPosted: Fri Dec 03, 2004 4:31 am 
Newbie

Joined: Fri Dec 03, 2004 4:08 am
Posts: 2
Many similar problems have been posted on this site, but no solutions have worked for me yet, any help with this is greatly appreciated!

Using:
Hibernate 2.1.7, Eclipse, Tomcat 5.0, MySql DB
XDoclet for code generation, both for the *.hbm.xml and hibernate.cfg.xml

Trying to run a simple testcase on a very simple test application using JUnit within Eclipse. One table, one object to map:

Get the following Errors from console:

net.sf.hibernate.MappingException Error reading resource /com/chasparsons/obj/UserDataObject.hbm.xml


Mapping File:
<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping>
<class
name="com.chasparsons.obj.UserDataObject"
table="user"
dynamic-update="false"
dynamic-insert="false"
>

<id
name="id"
column="id"
type="java.lang.Long"
>
<generator class="native">
</generator>
</id>

<property
name="firstName"
type="java.lang.String"
update="true"
insert="true"
access="property"
column="firstname"
/>

<property
name="lastName"
type="java.lang.String"
update="true"
insert="true"
access="property"
column="lastname"
/>

<property
name="email"
type="java.lang.String"
update="true"
insert="true"
access="property"
column="email"
/>

<property
name="password"
type="java.lang.String"
update="true"
insert="true"
access="property"
column="password"
/>

<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-UserDataObject.xml
containing the additional properties and place it in your merge dir.
-->

</class>

</hibernate-mapping>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">

<!-- Generated file - Do not edit! -->

<hibernate-configuration>

<!-- a SessionFactory instance listed as /jndi/name -->
<session-factory>

<!-- properties -->
<property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">false</property>
<property name="use_outer_join">false</property>
<property name="connection.username">javauser</property>
<property name="connection.password">javapassword</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/hibernate</property>

<!-- mapping files -->
<mapping resource="com/chasparsons/obj/UserDataObject.hbm.xml"/>
</session-factory>

</hibernate-configuration>



[INFO] Environment - -Hibernate 2.1.7
[INFO] Environment - -hibernate.properties not found
[INFO] Environment - -using CGLIB reflection optimizer
[INFO] Environment - -using JDK 1.4 java.sql.Timestamp handling
[INFO] Configuration - -configuring from resource: /hibernate.cfg.xml
[INFO] Configuration - -Configuration resource: /hibernate.cfg.xml
[DEBUG] DTDEntityResolver - -trying to locate http://hibernate.sourceforge.net/hibern ... on-2.0.dtd in classpath under net/sf/hibernate/
[DEBUG] DTDEntityResolver - -found http://hibernate.sourceforge.net/hibern ... on-2.0.dtd in classpath
[DEBUG] Configuration - -dialect=net.sf.hibernate.dialect.MySQLDialect
[DEBUG] Configuration - -show_sql=false
[DEBUG] Configuration - -use_outer_join=false
[DEBUG] Configuration - -connection.username=javauser
[DEBUG] Configuration - -connection.password=javapassword
[DEBUG] Configuration - -connection.driver_class=com.mysql.jdbc.Driver
[DEBUG] Configuration - -connection.url=jdbc:mysql://localhost/hibernate
[DEBUG] Configuration - -null<-org.dom4j.tree.DefaultAttribute@7808b9 [Attribute: name resource value "com/chasparsons/obj/UserDataObject.hbm.xml"]
[INFO] Configuration - -Mapping resource: com/chasparsons/obj/UserDataObject.hbm.xml
[DEBUG] DTDEntityResolver - -trying to locate http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath under net/sf/hibernate/
[DEBUG] DTDEntityResolver - -found http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath
[INFO] Binder - -Mapping class: com.chasparsons.obj.UserDataObject -> user
[DEBUG] Binder - -Mapped property: id -> id, type: long
[DEBUG] Binder - -Mapped property: firstName -> firstname, type: string
[DEBUG] Binder - -Mapped property: lastName -> lastname, type: string
[DEBUG] Binder - -Mapped property: email -> email, type: string
[DEBUG] Binder - -Mapped property: password -> password, type: string
[INFO] Configuration - -Configured SessionFactory: null
[DEBUG] Configuration - -properties: {hibernate.connection.password=javapassword, java.runtime.name=Java(TM) 2 Runtime Environment, Standard Edition, sun.boot.library.path=C:\j2sdk1.4.2_05\jre\bin, java.vm.version=1.4.2_05-b04, hibernate.connection.username=javauser, java.vm.vendor=Sun Microsystems Inc., java.vendor.url=http://java.sun.com/, path.separator=;, java.vm.name=Java HotSpot(TM) Client VM, file.encoding.pkg=sun.io, use_outer_join=false, user.country=US, sun.os.patch.level=Service Pack 2, java.vm.specification.name=Java Virtual Machine Specification, user.dir=C:\eclipse\workspace\Chas, java.runtime.version=1.4.2_05-b04, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, java.endorsed.dirs=C:\j2sdk1.4.2_05\jre\lib\endorsed, os.arch=x86, java.io.tmpdir=C:\DOCUME~1\CHASPA~1\LOCALS~1\Temp\, line.separator=
, java.vm.specification.vendor=Sun Microsystems Inc., user.variant=, os.name=Windows XP, org.apache.commons.logging.simplelog.defaultlog=debug, sun.java2d.fontpath=, java.library.path=C:\j2sdk1.4.2_05\bin;.;C:\WINDOWS\system32;C:\WINDOWS;c:\program files\imagemagick-6.1.3-q16;C:\Perl\bin\;C:\PROGRAM FILES\THINKPAD\UTILITIES;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI Control Panel;C:\Program Files\PC-Doctor for Windows\services;C:\Program Files\Common Files\MDL Shared\ISIS;C:\php;C:\java\Maven 1.0\bin;C:\java\apache-ant-1.6.2\bin, java.specification.name=Java Platform API Specification, java.class.version=48.0, java.util.prefs.PreferencesFactory=java.util.prefs.WindowsPreferencesFactory, os.version=5.1, connection.password=javapassword, user.home=C:\Documents and Settings\chasparsons, user.timezone=, connection.username=javauser, java.awt.printerjob=sun.awt.windows.WPrinterJob, file.encoding=Cp1252, java.specification.version=1.4, hibernate.connection.driver_class=com.mysql.jdbc.Driver, show_sql=false, user.name=chasparsons, java.class.path=/c:/eclipse/plugins/org.eclipse.jdt.junit_3.0.0/junitsupport.jar;/c:/eclipse/plugins/org.eclipse.jdt.junit.runtime_3.0.0/junitruntime.jar;C:\eclipse\workspace\Chas\work;C:\eclipse\workspace\Chas\WEB-INF\classes;C:\eclipse\workspace\Chas\WEB-INF\lib\commons-beanutils.jar;C:\eclipse\workspace\Chas\WEB-INF\lib\commons-collections.jar;C:\eclipse\workspace\Chas\WEB-INF\lib\commons-digester.jar;C:\eclipse\workspace\Chas\WEB-INF\lib\commons-fileupload.jar;C:\eclipse\workspace\Chas\WEB-INF\lib\commons-lang.jar;C:\eclipse\workspace\Chas\WEB-INF\lib\commons-logging.jar;C:\eclipse\workspace\Chas\WEB-INF\lib\commons-validator.jar;C:\eclipse\workspace\Chas\WEB-INF\lib\jakarta-oro.jar;C:\eclipse\workspace\Chas\WEB-INF\lib\struts.jar;C:\eclipse\workspace\Chas\WEB-INF\lib\struts-legacy.jar;C:\java\jakarta-tomcat-5.0.28\common\lib\servlet-api.jar;C:\java\jakarta-tomcat-5.0.28\common\lib\jasper-runtime.jar;C:\java\jakarta-tomcat-5.0.28\common\lib\jsp-api.jar;C:\eclipse\workspace\Chas\WEB-INF\lib\cglib-full-2.0.2.jar;C:\eclipse\workspace\Chas\WEB-INF\lib\dom4j-1.4.jar;C:\eclipse\workspace\Chas\WEB-INF\lib\ehcache-0.9.jar;C:\eclipse\workspace\Chas\WEB-INF\lib\hibernate2.jar;C:\eclipse\workspace\Chas\WEB-INF\lib\log4j-1.2.8.jar;C:\eclipse\workspace\Chas\WEB-INF\lib\odmg-3.0.jar;C:\eclipse\workspace\Chas\WEB-INF\lib\jta.jar;C:\eclipse\plugins\org.junit_3.8.1\junit.jar, hibernate.show_sql=false, java.vm.specification.version=1.0, java.home=C:\j2sdk1.4.2_05\jre, sun.arch.data.model=32, hibernate.connection.url=jdbc:mysql://localhost/hibernate, hibernate.dialect=net.sf.hibernate.dialect.MySQLDialect, user.language=en, java.specification.vendor=Sun Microsystems Inc., awt.toolkit=sun.awt.windows.WToolkit, hibernate.cglib.use_reflection_optimizer=true, java.vm.info=mixed mode, java.version=1.4.2_05, java.ext.dirs=C:\j2sdk1.4.2_05\jre\lib\ext, sun.boot.class.path=C:\j2sdk1.4.2_05\jre\lib\rt.jar;C:\j2sdk1.4.2_05\jre\lib\sunrsasign.jar;C:\j2sdk1.4.2_05\jre\lib\jsse.jar;C:\j2sdk1.4.2_05\jre\lib\jce.jar;C:\j2sdk1.4.2_05\jre\lib\charsets.jar;C:\j2sdk1.4.2_05\jre\lib\ext\dnsns.jar;C:\j2sdk1.4.2_05\jre\lib\ext\ldapsec.jar;C:\j2sdk1.4.2_05\jre\lib\ext\localedata.jar;C:\j2sdk1.4.2_05\jre\lib\ext\mysql-connector-java-3.0.14-production-bin.jar;C:\j2sdk1.4.2_05\jre\lib\ext\sunjce_provider.jar, java.vendor=Sun Microsystems Inc., connection.driver_class=com.mysql.jdbc.Driver, file.separator=\, java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi, sun.io.unicode.encoding=UnicodeLittle, sun.cpu.endian=little, hibernate.use_outer_join=false, connection.url=jdbc:mysql://localhost/hibernate, dialect=net.sf.hibernate.dialect.MySQLDialect, org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog, sun.cpu.isalist=pentium i486 i386}
[INFO] Configuration - -Mapping resource: com/chasparsons/obj/UserDataObject.hbm.xml
[DEBUG] DTDEntityResolver - -trying to locate http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath under net/sf/hibernate/
[DEBUG] DTDEntityResolver - -found http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath
[ERROR] Configuration - -Could not compile the mapping document <net.sf.hibernate.MappingException: duplicate import: UserDataObject>net.sf.hibernate.MappingException: duplicate import: UserDataObject
at net.sf.hibernate.cfg.Mappings.addImport(Mappings.java:85)
at net.sf.hibernate.cfg.Binder.bindClass(Binder.java:127)
at net.sf.hibernate.cfg.Binder.bindRootClass(Binder.java:222)
at net.sf.hibernate.cfg.Binder.bindRoot(Binder.java:1257)
at net.sf.hibernate.cfg.Configuration.add(Configuration.java:252)
at net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:288)
at net.sf.hibernate.cfg.Configuration.addClass(Configuration.java:354)
at com.chasparsons.hibernate.ConnectionFactory.<init>(ConnectionFactory.java:59)
at com.chasparsons.hibernate.ConnectionFactory.getInstance(ConnectionFactory.java:107)
at com.chasparsons.hibernate.UserDAOTest.setUp(UserDAOTest.java:33)
at junit.framework.TestCase.runBare(TestCase.java:125)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:421)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:305)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:186)


Top
 Profile  
 
 Post subject:
PostPosted: Fri Dec 03, 2004 6:51 pm 
Beginner
Beginner

Joined: Wed Mar 17, 2004 4:13 pm
Posts: 21
Location: San Diego, CA
sheesh, this looks like it should work.

Forgive the "stupid" questions but are you sure you're not:
1. Calling the configuration twice.
2. Explicitly calling addXXX() on the config object to add the UserDataObject elsewhere in your code? Because you shouldn't, since it is specified in the hibernate.cfg.xml.

Your subject says "newbie". So, let me ask if you've ever gotten hibernate to work? If not, then maybe you need to dumb-down the test or the environment somehow. Take out all the fluff and 3rd party stuff like even the junit and the eclipse. Do something so basic that it would have to work. Know what I mean? That's just if your grasping at straws. There shouldn't be any problems with using either of those products with hibernate.

Good luck!

Chrisjan


Top
 Profile  
 
 Post subject: Thanks
PostPosted: Sat Dec 04, 2004 4:00 am 
Newbie

Joined: Fri Dec 03, 2004 4:08 am
Posts: 2
Chrisjan,

Well, I am as much an idiot as you suspected, I read on a bb that you have to call Configuration.configure() before you can add your class to the object....

Thus:
Configuration cfg = new Configuration();
cfg.configure();
cfg.addClass(com.chasparsons.obj.UserDataObject.class);

What I didn't realize is that you could call the cfg.configure() method OR place a configuration file on the classpath.

Dumb mistake, thanks for taking the time to respond.

Chas


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 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.