2013-01-03 22 views
6

Bir web uygulaması yazıyorum ve hazırda bekletme eklemek zorundayım. Ben maven (pom.xml) vb yapılandırılmış ama şimdi aşağıdaki hatayı alıyorum: Ben NetBeans kullanıyorumweb uygulaması - hibernate.cfg.xml dosyasını nereye yerleştirebilirim?

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

. Bu dosyayı WEB-INF, kök proje klasörü, src dizini (varsayılan paket) olarak değiştirmeyi denedim, ancak hala çalışmıyor. Nasıl yapabilirim? Böyle programlı bu dosyanın yolunu ayarlamak istemiyorum:

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

Sınıf yolunun kökünde olmalıdır. –

+0

Btw: Sınıf yolunu nasıl kontrol edebilirim? – Quak

+0

"Sınıf yolunu kontrol et" ile ne demek istiyorsun? –

cevap

8

Hep WEB-INF/classes dizine koydu (derlenmiş dosyalar orada depolanır).

+0

Teşekkürler, WEB-INF'de sınıflar dizini oluşturdum ve iyi çalışıyor. – Quak

+0

Bir şey değil;) –

+1

Bu dizini yapmak zorunda kaldığın tek şey. Oraya gitmesi gereken en az bir sınıfınız var! Netbeans'i burada düzgün kullanmadığınızı düşünüyor, ama sadece tahmin edebiliyorum. – Gimby

3

Hibernate.cfg.xml dosyasını sınıf yolundaki bir klasöre eklemeniz gerekir. Bir web uygulamasında, WEB-INF/sınıfları varsayılan olarak sınıf yolundadır. Bu klasörü kullanabilir veya kaynaklarınız için yeni bir tane oluşturabilirsiniz (bunları ayrı tutmak istediğinizi varsayarak) ve daha sonra proje ayarlarınızı yaparak sınıf yolundaki yeni klasörü ayarlayabilirsiniz.

1

HibernateConfig Dosya bağımsız değişkenini alan configure (File configFile) yöntemini kullanarak hibernate.cfg.xml dosyasını farklı bir dizinden (sınıf yoluna değil) yükleyebilirsiniz. (note, hazırda bekletme 4.3.7 kullanıyorum)

Avantajı, hazırda bekletme yapılandırma dosyanızı, birlikte paketlemenin dışında (bakım veya değişiklik amacıyla) erişime sahip olduğunuz ayrı bir dizine yerleştirebilirsiniz. erişemeyeceğiniz .war dosyasıyla.

Örnek aşağıdaki gibidir:


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); 

0

Bu dosya uygulamanın sınıf yolunda kökünde olmalıdır. Bu, WEB-INF/sınıfları altında

+0

dosya sınıfınızın içinde olması gerekmez. bkz .: http://stackoverflow.com/a/27666320/1547266 – Arthur

İlgili konular