我有一个使用休眠配置的Tomcat webapp,下面的代码默默地失败
在Configuration cfg = new Configuration();
Tomcat日志没有给出任何错误,除了我的调试语句在它失败的地方(BEGIN STATIC !!!)。没有例外。
然而,当我将应用程序打包到jar中,并在main中运行相同的方法调用时,它会成功而不会出错。
public class Manager {
static Logger log = Logger.getLogger(Manager.class);
public static SessionFactory sessionFactory;
public static void main(String[]args){
System.out.println(getSessionFactory());
}
public static SessionFactory getSessionFactory(){
if(sessionFactory==null){
System.out.println("BEGIN STATIC!!!!!!!! ");
try{
Configuration cfg = new Configuration(); //FAILS SILENTLY
System.out.println("BEGIN STATIC1"); //NOT PRINTED THEREAFTER
cfg.configure("hibernate_xxx.xml");
System.out.println("BEGIN STATIC2");
cfg.addResource("xxx/persistence/xxx.xml");
System.out.println("BEGIN STATIC 3");
cfg.addResource("xxx/persistence/xxx.hbm.xml");
cfg.addResource("xxx/persistence/xxx.hbm.xml");
sessionFactory = cfg.buildSessionFactory();
}catch(Exception exp){
System.out.println("ERROR");
exp.printStackTrace(System.out);
}
System.out.println("END STATIC ");
}
return sessionFactory;
}
答案 0 :(得分:0)
尝试在其他捕获后添加以下内容:
catch(Error e){
e.printStackTrace();
}
可能会抛出错误而不是异常。那么至少你应该得到一条错误信息,而不是一无所获。