الوصول إلى الهندسة المعمارية لموصل Java (JCA) من بيئة غير مُدارة

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

  •  02-10-2019
  •  | 
  •  

سؤال

نحن نستخدم JCA للتفاعل مع مورد شبكة منخفضة المستوى من داخل WebSphere ، ومع ذلك لدينا شرط أن نكون قادرين على الوصول إلى مورد الشبكة نفسه خارجيًا من Tomcat (أي ليس في بيئة مُدارة). إن تخطيطات الاتصالات والتخطيطات للبروتوكول مطوّلة للغاية ، لذلك نفضل عدم نسخ/لصق عدة آلاف من سطور التعليمات البرمجية (ثم يجب الحفاظ عليها بشكل منفصل).

من قراءة مواصفات JCA ، من المفترض أن يكون هناك بعض الدعم لتنفيذ الكود في بيئة غير مُدارة (مثل Tomcat). لسوء الحظ ، ليس لدي أي فكرة ماذا او ما من المفترض أن تفعل الواجهات ، أو كيفية الاتصال بها من خارج بيئة مُدارة (المواصفات غامضة إلى حد ما).

هل هناك أي أمثلة تنفيذ تُظهر كيفية تعديل JCA لتكون قابلة للاستخدام في بيئة غير مُدارة؟

شكرًا!

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

المحلول

كان لدينا حالة مماثلة ، حيث قمنا بتطوير موصل للوصول إلى تخزين WebDav الخارجي ، وأردنا استخدامه أيضًا من تطبيق مستقل (غير مُدير).

أعتقد أن أسهل طريقة هي حل هذا على مستوى التصميم ، وتنظيم التعليمات البرمجية الخاصة بك بطريقة أن المنطق الأساسي للموصل هو JCA-Agnostic ويمكن إعادة استخدامه بسهولة. بعد ذلك ، يمكنك لف هذا الرمز الخاص بـ JCA الذي يعرض الموصل إلى AS. من المحتمل أن يتم تعبئتها في جرة - وهذا هو على الأقل الحل الذي نختاره (لكننا قمنا بتعبئة كل شيء في واحد. جار).

خلاف ذلك ، فإن موصل JCA هو "الغراء" بين الأطراف الثلاثة التالية:

  1. خادم التطبيق
  2. EIS
  3. مكون التطبيق.

يجب أن يكون من الممكن محاكاة التنفيذ الخفيف الوزن للفئات اللازمة ، ثم استخدام موصل JCA مباشرة.

تتمثل إحدى الوظائف الرئيسية في الموصل JCA في إدارة تجميع الاتصالات ، ومن ما أتذكره ، الواجهة المقابلة التي يجب عليك تنفيذها هي ConnectionManager.

يتلقى موصل JCA إشارة إلى ConnectionManager, ، لكن التنفيذ محدد. إن كتابة تطبيق خفيف الوزن يوفر تجميعًا بدائيًا (أو عدم تجميعه على الإطلاق) يبدو ممكنًا.

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

(ربما يكون هناك أكثر من ذلك بقليل ، وبالطبع يعتمد على ما يستخدمه موصل JCA الخاص بك. على سبيل المثال ، إذا كان يستخدم Work و ال WorkManager, ، ثم يصبح أكثر تعقيدًا للسخرية. نفس الملاحظة إذا كان الموصل معاملات. لكن لا يبدو أن قضيتك.)

خلاف ذلك ، أعتقد أن الربيع لديه بعض الدعم لـ JCA ، فقد يكون من المفيد إلقاء نظرة على كيفية قيامهم بذلك.

من قراءة مواصفات JCA ، من المفترض أن يكون هناك بعض الدعم لتنفيذ الكود في بيئة غير مُدارة

هل يمكنك ذكر الجزء المحدد من المواصفات التي تشير إليها؟

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