簡體   English   中英

Web應用程序 - 在哪里放置hibernate.cfg.xml文件?

[英]web application - where to place hibernate.cfg.xml file?

我正在編寫一個Web應用程序,我必須添加hibernate。 我配置了maven(pom.xml)等,但現在我收到以下錯誤:

exception
javax.servlet.ServletException: org.hibernate.HibernateException: /hibernate.cfg.xml not found

我正在使用NetBeans。 我嘗試將此文件移動到WEB-INF,根項目文件夾,src目錄(默認包)但它仍然無法正常工作。 我能怎么做? 我不想像以下那樣以編程方式設置此文件的路徑:

Configuration cfg = new Configuration();
cfg.addResource("/some/path/to/this/file/Hibernate.cfg.xml");

我總是將它放入WEB-INF/classes目錄(編譯后的文件存儲在那里)。

您需要將hibernate.cfg.xml添加到類路徑中的文件夾中。 在webb應用程序中,默認情況下WEB-INF / classes位於類路徑中。 您可以使用該文件夾或為您的資源創建一個新文件夾(假設您要將它們分開),然后通過調整項目設置在類路徑中設置新文件夾。

您可以使用帶有hibernateConfig File參數的configure(File configFile)方法從其他目錄(不一定是類路徑)加載hibernate.cfg.xml。 (注意,我正在使用hibernate 4.3.7)

優點是,您可以將hibernate configs文件放在一個單獨的目錄中,除了將它與您可能無法訪問的.war文件捆綁在一起之外,您可以訪問該目錄(用於維護或更改)。

示例如下:


String hibernatePropsFilePath = "/etc/configs/hibernate.cfg.xml";
File hibernatePropsFile = new File(hibernatePropsFilePath);

Configuration configuration = new Configuration(); 
configuration.configure(hibernatePropsFile);

StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());

ServiceRegistry serviceRegistry = serviceRegistryBuilder.build();

SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);

此文件必須位於應用程序的類路徑的根目錄中。 這是在WEB-INF / classes下

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM