Ошибка инициализации Hibernate(фреймворк Vaadin)

287
08 июня 2017, 05:56

Всем привет пишу мультипользовательский портал, столкнулся с такой проблемой. Время от времени получаю такую ошибку "ExceptionInitializer error at db.HibernateUtil.getSessionFactory(HibernateUtil.java:51)". Собственно ошибка инициализации. И работа с БД для всех пользователей прекращается. Помогает только перезагрузка TomCat. Ранее с Hibernate не работал, поэтому возможна "детская ошибка". В программном коде имеет место быть работа с разными БД, т.е приходится создавать иногда несколько сессий. Прошу помощи.

Вот настройки Hibernate(hibernate.cfg):

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="connection.url">jdbc:postgresql://localhost:5432/DashBoard</property>
    <property name="connection.driver_class">org.postgresql.Driver</property>
    <property name="connection.username">vaadin</property>
    <property name="connection.password">xxxxx</property>
    <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQL95Dialect</property>
    <property name="show_sql">true</property>
    <property name="current_session_context_class">thread</property>
    <!-- DB schema will be updated if needed -->
    <property name="hibernate.hbm2ddl.auto">update</property>
    <property name="hibernate.dbcp.initialSize">8</property>
    <property name="hibernate.dbcp.maxActive">20</property>
    <property name="hibernate.dbcp.maxIdle">20</property>
    <property name="hibernate.dbcp.minIdle">0</property>
  </session-factory>
</hibernate-configuration>

А вот класc HibernateUtil:

public class HibernateUtil {
    public static SessionFactory getSessionFactory(String database) {
        try {
            // load from different directory
            Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
            configuration.setProperty("hibernate.connection.url", "jdbc:postgresql://localhost:5432/"+database);
            configuration.addAnnotatedClass(User.class);
            configuration.addAnnotatedClass(Client.class);
            configuration.addAnnotatedClass(Dictionary.class);
            configuration.addAnnotatedClass(Project.class);
            configuration.addAnnotatedClass(Document.class);
            configuration.addAnnotatedClass(Group.class);
            configuration.addAnnotatedClass(Log.class);
            configuration.addAnnotatedClass(Message.class);
            configuration.addAnnotatedClass(Tag.class);
            configuration.addAnnotatedClass(News.class);
            configuration.addAnnotatedClass(File.class);
            StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
            SessionFactory sessionFactory = configuration.buildSessionFactory(builder.build());
            return sessionFactory;
        } catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

}
READ ALSO
Организация поиска в listview

Организация поиска в listview

Сделал поиск в listview по примеру, как можно убрать регистровазависимость при поиске, то есть чтобы с маленькой буквы тоже можно было искать

446
Как изменить url swagger-а в spring?

Как изменить url swagger-а в spring?

Нужно чтобы сваггер деплоился не в рут директорию http://localhost:8080/swagger-uihtml, а в отдельную папочку api-docs

448
Проблема с выбором данных из базы данных в консоль

Проблема с выбором данных из базы данных в консоль

Не могу вытащить информацию в консоль с БД, более детальное описание вопроса в картинке ниже:

247
Could not open ServletContext resource Spring webmvc

Could not open ServletContext resource Spring webmvc

Здравствуйте, выскакивает данная ошибка, по каким причинам не понимаюПосмотрел другие ответы, мне не помогли мой web

349