2

この投稿を編集しています: 別のクラス DbDriverManager から "databaseUrl" を実行しようとしましたが、エラーが発生しました。より良い方法を教えてください

私はこのエラーをヘッティングしています:クラスcom.xxx.YY.hn.util.HibernateUtilを初期化できませんでした

SessionFactory 初期作成 error.java.lang.NullPointerException これは私のコードです:

public class DbDriverManager {


public String databaseUrl;

public String getDatabaseUrl() {
    return databaseUrl;
}

public void setDatabaseUrl() {
    FacesContext context = javax.faces.context.FacesContext.getCurrentInstance();
    HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();
    this.databaseUrl = (String)request.getSession().getAttribute("databaseUrl");
}

}

public class HibernateUtil 

{

 private static final SessionFactory sessionFactory;

  static 
  {    //create sessionFactory only once    
    try 
    {

        Configuration cfg = null;
        DbDriverManager dm = new DbDriverManager();

        dm.setDatabaseUrl();

      // creating the SessionFactory from hibernate.cfg.xml
        cfg =    new AnnotationConfiguration().configure();

        System.out.println("dm.getDatabaseUrl() :" + dm.getDatabaseUrl());

        cfg.setProperty("hibernate.connection.driver_class", "net.sourceforge.jtds.jdbc.Driver");
        cfg.setProperty("hibernate.connection.url", dm.getDatabaseUrl());
        cfg.setProperty("hibernate.connection.username", "wf_dbo");
        cfg.setProperty("hibernate.connection.password", "webflex");            
        cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.SQLServerDialect");
        cfg.configure();

        sessionFactory = cfg.buildSessionFactory();
        //sessionFactory = new cfg.buildSessionFactory();
      //sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();


    } 
    catch (Throwable ex) 
    {
           System.out.println("SessionFactory initial creation error."+ ex);
      throw new ExceptionInInitializerError(ex);
    }
  }
  public static SessionFactory getSessionFactory() {
     return sessionFactory;
  }

}

4

1 に答える 1