سؤال

أرغب في تعيين بعض المعلمات للقراءة فقط (على سبيل المثال.مضيف ومنفذ تسجيل RMI) إلى تطبيق Java EE الذي تم نشره على خادم Glassfish.المكان المعتاد للقيام بذلك هو واصف النشر، لكن مشكلتي هي أنه مضمن في EAR، لذا لا يمكنني تحريره دون تغيير EAR.

أحتاج إلى شيء مشابه لإعداد موارد JDBC وJMS، ولكنه أبسط بكثير.يمكنني وضع بيانات التكوين في جدول قاعدة بيانات ولكن يبدو أن هذا مبالغة.يمكنني استخدام محول موارد الملفات، ولكن سيكون من الأفضل أن أتمكن من تحرير التكوين في وحدة تحكم مسؤول Glassfish.

هل هناك طريقة قياسية للقيام بذلك؟كيف تختبر تطبيقاتك عندما تعتمد على العقد الخارجية التي تحتاج إلى التواصل معها؟أين يجب أن أضع هذه المعلمات وكيف يمكنني الوصول إليها؟

كان أفضل تخميني هو تحديد موارد JNDI الخارجية، ولكن أين أضع البيانات بعد ذلك؟

تحديث:هذا ما كنت أفكر فيه:

كيف يمكنني تخزين معلمات تكوين Java EE خارج EAR أو WAR؟

لذا فإن السؤال هو:كيف أفعل هذا في السمكة الزجاجية?

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

المحلول

بعد بضع ساعات من البحث على Google وجدت الإجابة!انها ليست تافهة، ولكن لحسن الحظ من السهل جدا.ها هو:

http://www.mentby.com/glassfish/custom-resource-work-when-looking-it-up-but-not-with-injection.html

إنشاء الموارد المخصصة في وحدة تحكم المشرف، وأضف a خاصية تسمى "القيمة".مثله:

نص بديل http://img231.imageshack.us/img231/8237/jndicustomresource.png

ومن ثم فإن الوصول إلى هذا الاسم/القيمة أمر سهل حقًا من EJB:

try {
     InitialContext ic = new InitialContext();
     String value = (String) ic.lookup("MyCustomResource");
     System.out.println("MyCustomResource = " + value);
} catch (NamingException e) {
     e.printStackTrace();
}

الذي يطبع

معلومات:MyCustomResource = عناق كبير من MyCustomResource!

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