İyi günler Hibernate ile database bağlantısı kurmaya çalışırken HibernateUtil sınıfında AnnotationConfiguration üstü çizili oluyor ve throw new ExceptionInInitializerError(ex) hatası döndürüyor sizce ne yapmam gerek nasıl düzeltebilirim?

import org.hibernate.cfg.AnnotationConfiguration;

soruldu: 25 Eki '14, 06:09

serefAltindal's gravatar image

serefAltindal
1867814
cevap kabul oranı: 25%


AnnatationConfiguration'ın initialize hatası döndürme sebebi farklı bir sürüm kullanmamdan dolayıymış şu kod satırı HibernateUtil sınıfında sorunsuz çalışmaktadır.

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class  HibernateUtil {
 private static final SessionFactory sessionFactory;

static {
   try {
       // Create the SessionFactory from hibernate.cfg.xml
        sessionFactory = new Configuration().configure().buildSessionFactory();
   } 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);
   }
}

public static SessionFactory getSessionFactory() {
   return sessionFactory;
}
}
permanent link

cevaplandı: 28 Eki '14, 07:09

serefAltindal's gravatar image

serefAltindal
1867814
cevap kabul oranı: 25%

Sanirim eski configurasyon seklini kullaniyorsunuz. Yazdigim demo projesindeki Persistence.xml ve JpaUtil.java dosyalarina bakarak JPA/Hibernate connection olusturabilirsiniz. Kullanimi su sekilde:

EntityManager entityManager = JpaUtil.getEntityManager();

Demo projesi JPA 2.0 ve Hibernate 4.1.5 SP1 versiyonlari ile yazilmisti.

permanent link

cevaplandı: 26 Eki '14, 19:12

CemIkta's gravatar image

CemIkta ♦
19.9k29125190
cevap kabul oranı: 36%

Yardımınız için teşekkür ederim fakat JSF ile kullanıyorum Hibernate'i JPA ile farklılıklarını veya benzerliklerini bilmiyorum o yüzden uygulayamıyorum

(27 Eki '14, 06:31) serefAltindal serefAltindal's gravatar image

Anladığım kadarıyla JPA olarak kullanmıyorsunuz ve Hibernate 3.x versiyonun üstünde bir versiyon kullanıyorsunuz bundan dolayı

import org.hibernate.cfg.AnnotationConfiguration;

yazan satırda

The type AnnotationConfiguration is deprecated.

diye bir warning alıyorsunuz. Bende aynı şekilde kullanmama rağmen herhangi bir hata döndermiyor. Kullanmış olduğum HibernateSessionFactory classı aşağıdaki gibidir.

public class HibernateSessionFactory {

/**
 * Location of hibernate.cfg.xml file. Location should be on the classpath
 * as Hibernate uses #resourceAsStream style lookup for its configuration
 * file. The default classpath location of the hibernate config file is in
 * the default package. Use #setConfigFile() to update the location of the
 * configuration file for the current session.
 */
private static String CONFIG_FILE_LOCATION = "hibernate.cfg.xml";
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
private static Configuration configuration = new AnnotationConfiguration();
private static org.hibernate.SessionFactory sessionFactory;
private static String configFile = CONFIG_FILE_LOCATION;

static {
    try {
        configuration.configure(configFile);
        sessionFactory = configuration.buildSessionFactory();
    } catch (Exception e) {
        System.err.println("%%%% Error Creating SessionFactory %%%%");
        e.printStackTrace();
    }
}

private HibernateSessionFactory() {
}

/**
 * Returns the ThreadLocal Session instance. Lazy initialize the
 * <code>SessionFactory</code> if needed.
 * 
 * @return Session
 * @throws HibernateException
 */
public static Session getSession() throws HibernateException {
    Session session = (Session) threadLocal.get();

    if (session == null || !session.isOpen()) {
        if (sessionFactory == null) {
            rebuildSessionFactory();
        }
        session = (sessionFactory != null) ? sessionFactory.openSession() : null;
        threadLocal.set(session);
    }

    return session;
}

/**
 * Rebuild hibernate session factory
 * 
 */
public static void rebuildSessionFactory() {
    try {
        configuration.configure(configFile);
        sessionFactory = configuration.buildSessionFactory();
    } catch (Exception e) {
        System.err.println("%%%% Error Creating SessionFactory %%%%");
        e.printStackTrace();
    }
}

/**
 * Close the single hibernate session instance.
 * 
 * @throws HibernateException
 */
public static void closeSession() throws HibernateException {
    Session session = (Session) threadLocal.get();
    threadLocal.set(null);

    if (session != null) {
        session.close();
    }
}

/**
 * return session factory
 * 
 */
public static org.hibernate.SessionFactory getSessionFactory() {
    return sessionFactory;
}

/**
 * return session factory
 * 
 * session factory will be rebuilded in the next call
 */
public static void setConfigFile(String configFile) {
    HibernateSessionFactory.configFile = configFile;
    sessionFactory = null;
}

/**
 * return hibernate configuration
 * 
 */
public static Configuration getConfiguration() {
    return configuration;
}}

Belki yardımcı olur

permanent link

cevaplandı: 27 Eki '14, 05:45

kurtomerfaruk's gravatar image

kurtomerfaruk
1.3k222940
cevap kabul oranı: 29%

Yardımınız için teşekkür ederim fakat hala aynı hatayı alıyorum versiyonları düzenlemem gerekiyor öncelikle sonra tekrar deneyeceğim

(27 Eki '14, 06:28) serefAltindal serefAltindal's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079
×281
×109

Soruldu: 25 Eki '14, 06:09

Görüntüleme: 676 kez

Son güncelleme: 28 Eki '14, 07:09

powered by BitNami OSQA