2015-11-13 34 views
1

我有一個Mave + Hibernate + Eclipse項目。 我在/ src目錄/主/資源hibernate.cfg.xml的(因爲它應該是)Hibernate指定的cfg.xml文件[/src/main/resources/hibernate.cfg.xml]不存在

這是我的樹 My tree

HibernateUtil類啓動會議(我也試圖強迫CFG .XML,你可以在評論部分看不出來)

public class HibernateUtil { 

private static final Logger logger = LogManager.getLogger(HibernateUtil.class); 
    private final static String cfgFile ="/src/main/resources/hibernate.cfg.xml"; 
    private static File hibernateConfig = new File(cfgFile); 

    private static final SessionFactory sessionFactory = buildSessionFactory(); 

    private static SessionFactory buildSessionFactory() { 
     try { 
      // Create the SessionFactory from hibernate.cfg.xml 
      Configuration configuration = new Configuration(); 
      configuration.configure(hibernateConfig); 
//   StandardServiceRegistryBuilder srb = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()); 
//   ServiceRegistry serviceRegistry = srb.build(); 
      return new Configuration().configure().buildSessionFactory(); 
     } 
     catch (Throwable ex) { 
      // Make sure you log the exception, as it might be swallowed 
      logger.error("Initial SessionFactory creation failed." + ex); 
      throw new ExceptionInInitializerError(ex); 
     } 
    } 

    public static SessionFactory getSessionFactory() { 
     return sessionFactory; 
    } 

    public static void shutdown() { 
     // Close caches and connection pools 
     getSessionFactory().close(); 
    } 

這是例外

2015-11-13 10:17:56.565 [main] [ERROR] Initial SessionFactory creation failed.org.hibernate.internal.util.config.ConfigurationException: Specified cfg.xml file [/src/main/resources/hibernate.cfg.xml] does not exist 
Exception in thread "main" java.lang.ExceptionInInitializerError 
    at it.besmart.crud.HibernateUtil.buildSessionFactory(HibernateUtil.java:34) 
    at it.besmart.crud.HibernateUtil.<clinit>(HibernateUtil.java:20) 
    at it.besmart.parkserver.StartServer.updatePark(StartServer.java:70) 
    at it.besmart.parkserver.StartServer.main(StartServer.java:33) 
Caused by: org.hibernate.internal.util.config.ConfigurationException: Specified cfg.xml file [/src/main/resources/hibernate.cfg.xml] does not exist 
    at org.hibernate.boot.cfgxml.internal.ConfigLoader.loadConfigXmlFile(ConfigLoader.java:85) 
    at org.hibernate.boot.registry.StandardServiceRegistryBuilder.configure(StandardServiceRegistryBuilder.java:167) 
    at org.hibernate.cfg.Configuration.configure(Configuration.java:300) 
    at it.besmart.crud.HibernateUtil.buildSessionFactory(HibernateUtil.java:26) 
    ... 3 more 

我「以前也試過CFG文件移動到另一個目錄,但我總是得到同樣的錯誤,我的pom.xml文件說/ src目錄/主/資源是資源目錄

<resources> 
    <resource> 
     <directory>/Users/mario/eshare/workspace/parkserver/src/main/resources</directory> 
    </resource> 
</resources> 

任何想法?

+0

使用相對尋址:'cfgFile =「hibernate.cfg.xml」' –

回答

1

資源標籤應該是這樣,而不是:

<resources> 
    <resource> 
    <directory>src/main/resources</directory> 
    </resource> 
</resources> 

,你應該看看它是這樣的:

cfgFile = "hibernate.cfg.xml"; 

,如果你將它放在創建war文件WEB-INF/src/main/層次結構絕對不應該是生成文件的一部分。

+0

我創建了一個jar文件,而不是一場戰爭,無論如何,你是一個好點,但我無法將有效的pom.xml改爲使用正確的路徑(實際上我所有的目錄都有完整的路徑...) – besmart

相關問題