views:

173

answers:

5

Hi

I'm a .net dev, usually do this using nhibernate and can work with that fine. I'm doing a project which needs to be written in Java and have the following issue:

All I have so far is a blank java project setup in eclipse. I have C:\work\lib\java\cp\hibernate3.jar in the Referenced Libraries node in the package explorer.

in my code (main) i'm doing this

Configuration config = new Configuration().
            setProperty("hibernate.dialect", "org.hibernate.dialect.HSQLDialect").
            setProperty("hibernate.connection.driver_class", "org.hsqldb.jdbcDriver").
            setProperty("hibernate.connection.url", "jdbc:hsqldb:mem:RefenceDb").
            setProperty("hibernate.connection.username", "sa").
            setProperty("hibernate.connection.password", "").
            setProperty("hibernate.connection.pool_size", "1").
            setProperty("hibernate.connection.autocommit", "true").
            setProperty("hibernate.cache.provider_class", "org.hibernate.cache.HashtableCacheProvider").
            setProperty("hibernate.hbm2ddl.auto", "create-drop").
            setProperty("hibernate.show_sql", "true").
            addClass(Boy.class);

and in the consol i have:

Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/DocumentException
    at ReferenceApplication.Main.main(Main.java:15)
Caused by: java.lang.ClassNotFoundException: org.dom4j.DocumentException
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    ... 1 more

any ideas?

the path C:\work\lib\java\cp\ is in the classpath

w://

+4  A: 

Download dom4j and put it on your classpath (in the referenced libraries tab)

Bozho
+1  A: 

From the stack trace, it looks like you're missing dom4j.jar. Hibernate (for Java) has a ton of dependencies. Make sure that you have all of Hibernates required dependencies added to your Eclipse project.

Erich Douglass
+1  A: 

You need to put the dom4j jar on your classpath. You should be able to get it here:

http://www.dom4j.org/download.html

I think that hibernate uses version 1.6.1

jtbradle
+5  A: 

While the other answers here referencing dom4j are correct, you will soon find there a dozen or so other dependencies.

Starting from total scratch is a noble pursuit, but I would actually recommend giving yourself a head start by installing Maven (for dependency management) and running mvn archetype:generate from the command line. If you're doing a web application (which you may not be based on the question text) selecting "maven-archetype-j2ee-simple" or "maven-archetype-webapp" would be a pretty good kickstart. Doing so will set up a project for you that can then be used in eclipse (you could even use m2eclipse plugin to do dependency management from within eclipse).

It will turn out that Maven has a learning curve of its own, but my opinion is that the benefits outweigh the costs.

Good luck!

dustmachine
https://www.hibernate.org/422.html might help, along with http://pookey.co.uk/blog/archives/65-Hibernate-with-MySQL-part-4-annotations-and-maven.html
matt b
A: 

To make all this easier, I would quickly learn Maven and then use the m2eclipse plugin. I know it's a learning curve, but it will make everything massively easier at deploy time.

Kango_V