在NoInitialContextException发生之前检查InitialContext是否存在

时间:2013-04-01 15:34:20

标签: java hibernate servlets

我从Hibernate的javax.naming.NoInitialContextException方法获得SessionFactory.buildSessionFactory()。这是因为我试图在容器外运行一个测试用例 我有代码来引用applicationContext.xml中配置的本地数据源。问题是我不知道在哪里实现本地数据源代码 我不能把它放在catch(NoInitialContextException)里面,因为SessionFactory类深入代码中,并且根据应用程序设计,抛出所有异常都没有捕获它们。
在找到InitialContext方法之前,有没有找出buildSessionFactory是否存在?

1 个答案:

答案 0 :(得分:0)

也许您可以在InitialContext上执行查询以检查是否有SessionFactory,如下所述:http://docs.jboss.org/jbossas/getting_started/v4/html/hibernate.html

try {
    InitialContext ctx = new InitialContext();
    ctx.lookup("java:/hibernate/SessionFactory");
catch (NamingException e) {
    //here you can assume that buildSessionFactory won't work
    ...
}