سؤال

مشروعي هو مثل هذا:

/src/main/java
     -thegamers
         -app.java
         -hibernateutil.java

هل يمكن لأحد أن يقول لي أين أضع ملف hibernate.cfg.xml؟

لأنني أتلقى هذا الخطأ:

Initial SessionFactory creation failed.org.hibernate.HibernateException: hibernate.cfg.xml not found
Exception in thread "main" java.lang.ExceptionInInitializerError
    at thegamers.HibernateUtil.buildSessionFactory(HibernateUtil.java:17)
    at thegamers.HibernateUtil.<clinit>(HibernateUtil.java:8)
    at thegamers.App.main(App.java:15)
Caused by: org.hibernate.HibernateException: hibernate.cfg.xml not found
    at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:170)
    at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:2149)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:2130)
    at thegamers.HibernateUtil.buildSessionFactory(HibernateUtil.java:13)
    ... 2 more
هل كانت مفيدة؟

المحلول

ملف التكوين hibernate.cfg.xml يجب أن يكون على classpath.

ويمكن تحقيق ذلك بطرق مختلفة، اعتمادًا على مشروعك.

  • ل حرب تطبيقات الويب المشروع (أنت تقوم بتشغيل البرنامج في حاوية Servlet):وضعه فيه WEB-INF/classes سوف تعمل كملفات في WEB-INF/classes تكون مرئية في مسار الفصل عند تشغيل التطبيق في الحاوية.

  • ل مخضرممشروع على النمط (لا يقوم بتشغيل البرنامج في حاوية Servlet):وضعه فيه /src/main/resources/ سيعمل

  • خلاف ذلك، حاول في src/ الدليل.

نصائح أخرى

أنا أستخدم maven، ولم ينجح الأمر بالنسبة لي حتى قمت بوضع hibernate.cfg.xml في src/main/resources.

في جذر مشروعك: /src (على الأقل كافتراضي)

كيف تعرف إذا /src هو المصادر دير؟
عندما تقوم بإنشاء فئة Java جديدة، يتم تضمينها في حزمة (عادةً ما يطلق عليها نفس اسم الدليل الذي تم إنشاؤه فيه).لذلك، في إعلان صفك، يمكنك رؤية شيء مثل هذا:

package foo;

class MyClass{

في إعدادات IDE الافتراضية، يجب العثور على الفصل ضمن /src/foo/MyClass.java.كما ترون، في هذا السيناريو /src بمثابة مصادر الجذر دير.

إذا لم يكن مشروع الويب، فقم بذلك بشكل صريح مثل giveacodicetagpre.

آمل أن يساعد ذلك

SIB أشار رابط (موقع ويب MKYONG).وأوضح جيدا هناك.

الملف يفترض أن تذهب إلى الجذر الخاص بك /src dir حين /src لم يتم نشر كل شيء في أنها بنيت/نسخ إلى WEB-INF/classes التي يتم نشرها.السبات يحتاج cfg.xml الملف في classpath المشروع الخاص بك لتحميل إعدادات التكوين ، WEB-INF dir ليس في classpath, لذا إذا كنت تريد وضعها هناك, لكنت يختبئ من السبات و لن ينجح.

هذا الموضوع سوف اقول لكم كيفية تحميل hibernate.cfg.xml من أي طريق آخر.

إذا كنت تستخدم Eclipse، انتقل إلى المشروع -> خصائص -> مسار بناء Java -> المصدر.يمكنك إضافة المجلد الجديد حيث قمت بوضع الملف أو نقل الملف إلى المجلد الموجود.

cmd + n / ctr + n أثناء وجودك على استكشافها، فسوف يفتح مربع حوار هناك في Dubbel انقر فوق مجلد السبات. سيفتح قائمة الملفات باستخدام XML Extenuation. حدد CFG.XML وانقر فوق متابعة ومتى تتم!انقر فوق "إنهاء".ستضيف Eclips الآن اسم الفصل مع ملف CFG.xml وإظهاره ضمن مجلد SRC.GB

مكان hibernate.cfg.xml تحت src/ المجلد أو اذكر المسار بشكل صريح في الكود على النحو التالي:

new Configuration.configure("path of hibernate.cfg.xml").buildsessionfactory()

حاول وضعه في "src/main/resources" الدليل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top