Netbeans Hibernate sample DVDStoreAdmin

 
 
 
Сообщения:12
Здравствуйте! Пытаюсь запуститьпример DVDSroreAdmin с сайта . Сначала была проблема со ссылками на hibernate. Удалил то, что было в проекте и добавил ссылка на Hibernate из стандартной поставки Netbeans.
Получаю ошибку создания сессии.
Initial SessionFactory creation failed.java.lang.NoClassDefFoundError: javax/persistence/EntityListeners
Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError
	at sakila.util.HibernateUtil.<clinit>(HibernateUtil.java:28)
	at sakila.ui.DVDStoreAdmin.executeHQLQuery(DVDStoreAdmin.java:165)
	at sakila.ui.DVDStoreAdmin.runQueryBasedOnFirstName(DVDStoreAdmin.java:36)
	at sakila.ui.DVDStoreAdmin.queryButtonActionPerformed(DVDStoreAdmin.java:134)
	at sakila.ui.DVDStoreAdmin.access$000(DVDStoreAdmin.java:26)
	at sakila.ui.DVDStoreAdmin$1.actionPerformed(DVDStoreAdmin.java:72)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6533)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6298)
	at java.awt.Container.processEvent(Container.java:2236)
	at java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.awt.Container.dispatchEventImpl(Container.java:2294)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
	at java.awt.Container.dispatchEventImpl(Container.java:2280)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.NoClassDefFoundError: javax/persistence/EntityListeners
	at org.hibernate.cfg.annotations.reflection.JPAMetadataProvider.getDefaults(JPAMetadataProvider.java:100)
	at org.hibernate.annotations.common.reflection.java.JavaReflectionManager.getDefaults(JavaReflectionManager.java:252)
	at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1386)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1844)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1928)
	at sakila.util.HibernateUtil.<clinit>(HibernateUtil.java:24)
	... 41 more
Caused by: java.lang.ClassNotFoundException: javax.persistence.EntityListeners
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 47 more


Код создания сессии стандартный из примера не менял, а именно
        try {
            // Create the SessionFactory from standard (hibernate.cfg.xml) 
            // config file.
            sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            // Log the exception. 
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
 
 
Сообщения:139
hibernate надо с зависимостями в класс-путь тащить, однако

 
 
Сообщения:12
Спасибо за участие.
Прошу пояснить, что это значит. У меня сейчас есть проект в Netbeans. Там в разделе Libraries добавлены Hibernate 4.3.x. и postgresql-9.3-1104.jdbc41.jar, т.к. я решил использовать PostgreSQL вместо MySQL. Кроме того, отредактировал hibernate.cfg.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="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
    <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
    <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/hibernatedb</property>
    <property name="hibernate.connection.username">postgres</property>
    <property name="hibernate.connection.password">pg78</property>
    <property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
        <property name="connection_pool_size">1</property>

        <property name="hbm2ddl.auto">create</property>

        <property name="show_sql">true</property>    
    <mapping resource="sakila/entity/Actor.hbm.xml"/>
  </session-factory>
</hibernate-configuration>


PostgreSQL работает корректно (есть доступ к нему из .NET), базу hibernatedb создал.

Что еще надо сделать?
 
 
Сообщения:12
Может, есть какой-то другиой пример, как в Netbeans это сделать? Мне надо работать с базой PostgreSQL через Hibernate, желательно через аннотации (чтобы минимум править в xml).
 
 
Сообщения:12
Подключение к базе данных без Hibernate успешно выполняется из этого же проекта.
Код, приведенный ниже, успешно работает.
    public static void CreatingConnection() {
        try {
            Class.forName("org.postgresql.Driver");
            System.out.println("Driver loading success!");
            String url = "jdbc:postgresql://localhost:5432/hibernatedb";
            String name = "postgres";
            String password = "pg78";
            try {
                Connection con = DriverManager.getConnection(url, name, password);
                System.out.println("Connected.");
                con.close();
                System.out.println("Disconnected.");
            } catch (SQLException e) {
                e.printStackTrace();
            }            
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
 
 
Сообщения:12
Изменил код в HibernateUtil
            AnnotationConfiguration fact = new AnnotationConfiguration().configure();
            sessionFactory = fact.buildSessionFactory();

На строке
            sessionFactory = fact.buildSessionFactory();

получаю исключение NoClassDefFoundError: javax/persistence/EntityListeners. Этот класс действительно должен существовать и где?
 
 
Сообщения:139
Ну ты же используешь hibernate. Ты же его качал откуда-то, верно? На сайте есть информация о зависимостях, есть ссылки на бандлы, включающие все зависимости: https://sourceforge.net/projects/hibernate/files/hibernate-orm/

 
Модераторы:Нет
Сейчас эту тему просматривают:Нет