2013-04-17 2 views
1

Я сделал некоторый код, чтобы узнать спящий режим. Это бросает ошибку ниже. Как узнать, в чем проблема и исправить? dom4j звучит как проблема XML. Проблема hibernate.cfg.xml?java.lang.ClassNotFoundException: org.dom4j.DocumentException

Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/DocumentException 
at com.examscam.model.User.persist(User.java:45) 
at com.examscam.model.User.main(User.java:57) 
Caused by: java.lang.ClassNotFoundException: org.dom4j.DocumentException 
at java.net.URLClassLoader$1.run(Unknown Source) 
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) 
... 2 more 

(почему затмение не показывать это "2more" вещь?)

код -

package com.examscam.model; 

import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.Id; 
import org.hibernate.cfg.AnnotationConfiguration; 
import org.hibernate.tool.hbm2ddl.SchemaExport; 


@Entity 
public class User { 

private Long id; 
private String password; 

@Id 
@GeneratedValue 

public Long getId(){ 
    return id; 

} 

public void setId(Long id){ 

    Class c1 = User.class; 
    this.id = id; 

} 

public String getPassword() { 
    return password; 
} 

public void setPassword(String password) { 
    this.password = password; 
} 

public static void persist(){ 

    /* 
    * Contains all the info needed to connect to database, along with 
    * info from your JPA annotated class, ie this class. 
    */ 
    AnnotationConfiguration config = new AnnotationConfiguration(); 
    config.addAnnotatedClass(User.class); 
    config.configure(); 

    SchemaExport schemaExport = new SchemaExport(config); 
    schemaExport.create(true, true); 

} 


public static void main(String[]args){ 

    persist(); 

} 

} 

XML файл -

<?xml version = '1.0' encoding='UTF-8' ?> 

<!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 = "connection.url"> 
jdbc:mysql://localhost/examscam 
</property> 

<property name = "connection.username"> 
root 
</property> 

<property name = "connection.password"> 
password 
</property> 

<property name = "connection.driver_class"> 
com.mysql.jdbc.Driver 
</property> 

<property name = "dialect"> 
org.hibernate.dialect.MySQLDialect 
</property> 

<property name = "transaction.factory_class"> 
org.hibernate.transaction.JDBCTransactionFactory 
</property> 

<property name = "current_session_context_class"> 
thread 
</property> 

<!-- this will show us all the SQL statements--> 

<property name = "hibernate.show_sql"> 
true 
</property> 

<!-- We dont use any mapping files as of now--> 

</session-factory> 
</hibernate-configuration> 

UPDATE

После исправления ошибок выше, возникает новая проблема -

Я делаю код с затмением. Я добавил все возможные банки, необходимые для кода, и мой код все еще не работает. Почему эта ошибка java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder происходит, когда я уже добавил sl4fj ( slf4j-api-1.5.8.jar), чтобы построить путь?

Ошибка -

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". 
    SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 
    Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j 
    /impl/StaticLoggerBinder 
at org.slf4j.LoggerFactory.getSingleton(LoggerFactory.java:223) 
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:120) 
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111) 
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:269) 
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:242) 
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:255) 
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:152) 
at com.examscam.model.User.persist(User.java:45) 
at com.examscam.model.User.main(User.java:57) 
    Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder 
at java.net.URLClassLoader$1.run(Unknown Source) 
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) 
... 9 more 
+0

Кажется, что в баке отсутствует. –

+0

@ Судханшу - что заставило вас подумать? Это java.lang.NoClassDefFoundError: org/dom4j/DocumentException? –

+0

Caused by: java.lang.ClassNotFoundException: org.dom4j.DocumentException –

ответ

12

Убедитесь dom4j.jar находится в пути к классам.

Что вы говорите 2more.

Когда вы видите «... еще 2», это означает, что остальные строки исключения «вызваны» идентичны остальным строкам из этой точки родительского исключения.

+0

Все остальные баночки. но теперь возникает новая ошибка такого же типа. странный. –

+0

Значит, все еще остаются некоторые транзитивные зависимости, продолжайте обновлять путь к классам, пока эта ошибка не будет решена. Если его небольшая тестовая версия переключается на Maven, это значительно сократит ваши усилия. –

+0

Как это уменьшит мои усилия? Я думаю, что затмение использует maven и другие подобные вещи за кулисами, чтобы заставить наш проект работать. Наверное, я должен позволить eclipse обрабатывать все это на данный момент. –