0

私はヘビネートで新しいです。サンプルコードを実行してみてください。

public class HibernateUtil {

private static final SessionFactory sessionFactory;

static {
    try {
        // Create the SessionFactory
        sessionFactory = new Configuration().configure().buildSessionFactory();
    } catch (HibernateException ex) {
        throw new RuntimeException("Configuration problem: " + ex.getMessage(), ex);
    }
}

public static final ThreadLocal session = new ThreadLocal();

public static Session currentSession() throws HibernateException {
    Session s = (Session) session.get();
    // Open a new Session, if this Thread has none yet
    if (s == null) {
        s = sessionFactory.openSession();
        session.set(s);
    }
    return s;
}

public static void closeSession() throws HibernateException {
    Session s = (Session) session.get();
    session.set(null);
    if (s != null)
        s.close();
}
}


public class javism_jaxb_xml_to_object {
public static void main(String[] args) throws JAXBException
{
    Session session = HibernateUtil.currentSession();
  Transaction tx = null;
    tx = session.beginTransaction();
            javism_jaxb cust = new javism_jaxb();
            cust.setName("Vasay");
            cust.setId(1);
            cust.setAge(34);
            session.save(cust);
            tx.commit();
}
}

しかし、例外を取得します

  Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:111)
at test.HibernateUtil.<clinit>(HibernateUtil.java:16)
at test.javism_jaxb_xml_to_object.main(javism_jaxb_xml_to_object.java:25)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 3 more

何が間違っているのですか?

アップデート

クラスパスに commons-logging-1.1.1.jar を追加した後。そして、hibernate3.jar を 3.0.3 から 3.5 に更新すると、別の例外が発生します

Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/DocumentException
at test.HibernateUtil.<clinit>(HibernateUtil.java:16)
at test.javism_jaxb_xml_to_object.main(javism_jaxb_xml_to_object.java:25)
Caused by: java.lang.ClassNotFoundException: org.dom4j.DocumentException
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 2 more

しかし、hibernate3.jar バージョン 3.0.3 を使用すると、これが得られます

15.08.2012 11:01:30 org.hibernate.cfg.Environment <clinit>
INFO: Hibernate 3.0.3
15.08.2012 11:01:30 org.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
15.08.2012 11:01:30 org.hibernate.cfg.Environment <clinit>
INFO: using CGLIB reflection optimizer
15.08.2012 11:01:30 org.hibernate.cfg.Environment <clinit>
INFO: using JDK 1.4 java.sql.Timestamp handling
15.08.2012 11:01:30 org.hibernate.cfg.Configuration configure
INFO: configuring from resource: /hibernate.cfg.xml
15.08.2012 11:01:30 org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: Configuration resource: /hibernate.cfg.xml
4

2 に答える 2

4

Apache commons logging jar がある場合は、クラスパスに追加する必要があります。それ以外の場合は、 Apacheからダウンロードしてプロジェクトに追加し、プロジェクトのクラスに追加します。

アップデート

ここからdom4j ライブラリをダウンロードし、クラスパスに追加します。

更新2

情報: Hibernate 3.0.3 --> 使用している休止状態のバージョンを示す情報ログ。

INFO: hibernate.properties が見つかりません --> INFO LOG SHOWINGhibernate.propertiesが見つかりません。これは、休止状態のプロパティを指定する別の方法です。これらのプロパティは で指定しhibernate.cfg.xmlます。

詳細については、こちらを確認してください

于 2012-08-15T04:48:46.097 に答える
1

休止状態を試すためのサンプル プロジェクトを作成するだけの場合、Nandkumar が提案したことは問題ありませんNoClassDefFoundError

このプロセスは非常に面倒です。理想的には、Hibernate (または他のそのようなフレームワーク) のすべての依存関係を解決できる maven などの依存関係管理ツールを使用する必要があります。このスレッドは、休止状態を使用するための Maven のセットアップに役立ちます。また、休止状態のバージョン間を移動する際にも役立ちます

Hibernate 3.5.x を maven pom.xml ビルドに追加する

于 2012-08-15T05:21:57.320 に答える