この投稿を編集しています: 別のクラス 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;
}
}