سؤال

أحاول دمج JOTM وHibernate EntityManager معًا لاختبار وحدات JB الخاصة بي في بيئة تعاملية ولكن خارج الحاوية.

يبدو الاختبار الخاص بي كما يلي:

  1. ابدأ تشغيل JOTM
  2. ضع معاملة مستخدم JOTM في JNDI
  3. إنشاء وتكوين StandardXADataSource
  4. ضع مصدر البيانات في JNDI
  5. تكوين السبات وإنشاء EMF
  6. قم بإنشاء EM
  7. ابدأ الصفقة
  8. انضم إلى المعاملة في EM
  9. تخزين كيان
  10. التحقق من تخزينه
  11. التراجع عن الصفقة
  12. التحقق من قاعدة البيانات لعدد السجلات
  13. هدم كل شيء إلى أسفل

إليك ما يبدو عليه الكود الخاص بي:http://pastebin.com/m22a9f6b

هنا هو إخراج التسجيل:http://pastebin.com/m6da9383a

فشل الاختبار في الخطوة 12 (السطر 121).

كما ترون، على الرغم من أنني قمت باستعادة المعاملة، إلا أن هناك سجلًا في قاعدة البيانات.يبدو أن المعاملات لم يتم استخدامها على الإطلاق وتم إدخال السجل إلى قاعدة البيانات.

هل لديك أي أفكار حول كيفية حدوث ذلك وكيفية إصلاحه؟

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

المحلول

اكتشفت أنني بحاجة إلى تقديم تطبيقي الخاص لـ ConnectionProvider والذي سيعيد XAConnection بدلاً من الاتصالات البسيطة.بهذه الطريقة يبدو أن المعاملات تعمل

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