[英]How to load hibernate.cfg.xml file in the java standalone application
[英]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.