2010-01-10 56 views
-1

我有一個Tomcat的Web應用程序使用休眠配置,下面的代碼默默地失敗 在Configuration cfg = new Configuration(); Tomcat日誌沒有給出任何錯誤,除了我的調試語句正好在下面它失敗(BEGIN STATIC !!!)。沒有例外被拋出。Tomcat的webapp默默地失敗

但是,當我將應用程序打包到一個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

嘗試通過另抓後,加入以下:

catch(Error e){ 
      e.printStackTrace(); 
} 

可能被拋出而不是異常的錯誤。那麼至少你應該得到一個錯誤信息而不是什麼。

+0

事實證明,日誌記錄到文件是滯後的,異常後來出現了一個Hibernate相關的異常。 – user217631 2010-01-10 09:09:36