كيف يمكنني اختبار ما إذا كان قد تم العثور على persistence.xml أم لا؟

StackOverflow https://stackoverflow.com/questions/1400103

  •  05-07-2019
  •  | 
  •  

سؤال

ولقد لاختبار بعض الأشياء على المشروع الذي تم تطويره من قبل الآخرين، ولكن هو جديد بالنسبة لي. انهم يستخدمون السبات باعتبارها تنفيذ نقابة الصحفيين.

وحصلت على الجهاز الظاهري الذي تم تعيين كل شيء، ولكن عندما أريد أن أبدأ أي Testclient (برامج حدة صغيرة، لا Unittesting). أنا دائما الحصول على نفس الخطأ.

Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:698)
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:121)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
    ...    
Caused by: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
    at org.hibernate.dialect.DialectFactory.determineDialect(DialectFactory.java:57)
    at org.hibernate.dialect.DialectFactory.buildDialect(DialectFactory.java:39)
    at org.hibernate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:409)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:119)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2006)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1289)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:691)
    ... 7 more

وبنية مشروع يشبه هذا. والغريب أنني بالفعل هذا الشيء تشغيل (قبل summerholdays بلدي.

|-- bin
|-- lib
|-- rsc
|   |-- META-INF
|   |   `-- persistence.xml
|-- src
|   |-- org 
|   |    | ... all sourcecode below 
`-- target

وحاولت تضييق المشكلة، لذلك أنا حذفت المجلد META-INF كله. لا تزال نفس الخطأ. لم يكن هذا ما كنت أتوقع، ودفعتني إلى الاعتقاد لم يتم العثور التي persistence.xml على الإطلاق. أنا لا أعرف لماذا وضعوا META-INF في المجلد RSC (كما ذكرت، انها ليست بلدي المشروع)، ولكن عندما وضعه في المجلد الجذر أو في مجلد SRC يبقى الخطأ.

وكيف أتأكد من أن تم العثور persistence.xml؟ هل هناك أي وثائق حيث ينبغي أن توضع META-INF. (ولماذا هو هذا ERRORMESSAGE مضللة ذلك؟)

هل كانت مفيدة؟

المحلول

وهذا يعتمد على عملية الإنشاء الخاصة بك حيث الملفات جمعتها / جرة في نهاية المطاف، عند بدء التطبيق الاختبار. أنا متأكد، فإنك لن تبدأ من SRC-المجلد. سوف تحصل على بعض بناء أو اختبار مجلد لتشغيل التطبيق من. ثم بنية المجلد يجب أن يكون عادة مثل هذا:

|- build
   |- classes
      |- org (packages)
         |- ...
      |- META-INF
         |- persistence.xml
         |- ... (other config files)

هل يمكن أن تحقق أيضا هذا رابط .

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