سؤال

لدي تطبيق Langacy أحاول ميناء Java EE. يعمل هذا التطبيق حاليا url.seturlStreamhandlerLefactory () لتسجيل بعض معالجات بروتوكول URL مخصص. فشل هذه المكالمة تحت Glassfish V 2.1 و 3 لأن Glassfish سجلت بالفعل مصنع.

لقد حاولت استخدام خاصية نظام Java.protocol.handler.pkgs، ولكن هذا لا يعمل بالنسبة لي بسبب مشكلات الفصل الدراسية. جميع فصول المعالج جزء من التطبيق ولم أكن حريصا على محاولة استخراجها ووضع جرة في Classpath في الحاوية.

لدي نفحة حزم OSGI - على ما يبدو، يمكنني كتابة حزمة ستتعامل مع البروتوكولات الجديدة. لست حريصا على جعل تطبيق الويب هذا حزمة OSGI (خطوة واحدة في وقت واحد! EE أولا، ثم Osgi إذا كانت الحاجة تنشأ).

هل من الممكن أن ينبثق جرة حزمة في دليل الويب الخاص بي / Lib الخاص بي ولديه حمص نباتي كحزمة؟ ستحتاج الحزمة إلى استيراد الحزم من تطبيقات الويب (جرة أخرى في Web-Inf / Lib أو في Web-INF / الفئات). أنا على استعداد لحزم هذا التطبيق كأذن إذا كان ذلك سيعمل، لا أستطيع تبرير التبريد بأكمله دون معرفة المزيد.

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

المحلول

لقد حلت مشكلتي. يبدو أنني أتيحت لي بعض الأسلاك عبرت خاصية نظام Java.Protocol.handler.pkgs بشكل جيد.

لأي شخص آخر ينطلق، وضعت جرة مع معالجاتي في DomainDir / Lib / ext / وكذلك في دليل WAF-INF / LIB في حرب. في تكوين التطبيق الخاص بي، قمت أيضا بوضع خيار JVM -djava.protocol.handler.pkgs = my.handlers.pkg.prefix

لقد لاحظت في Glassfish 2.1 إنها تعمل بدون خيار JVM إذا وضعت البادئة في بعض رمز بدء التشغيل، ولكن في Glassfish 3 خيار JVM ضروري لأن Felix (يستخدم Glashfish Provology Deproup) فقط استشارة العقار عند الخادم بدء التشغيل، وليس لكل طلب.

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