سؤال

لديّ مشروع ويب على Java EE 5 و Websphere 7.0 أحتاج إلى إنشاء برنامج جدولة وتشغيله بعد نشر التطبيق. ما جربته: أقوم بإنشاء EJB بواجهة: Genacodicetagpre

وحدة الجلسة عديمة الحالة تنفذ هذه الواجهة. أسلوب createTimer يقوم بإنشاء مثيل مؤقت من TimerService. هذا الجزء من التعليمات البرمجية يعمل بشكل جيد. أحتاج أيضًا إلى استدعاء طريقة createTimer () بعد نشر التطبيق. حاولت:

  1. أضف مستمع servletContext:

    SchedulerInitialiserContextListener للفئة العامة ينفذ ServletContextListener { // خدمة للبحث عن ejb WebServiceLocator الخاص webServiceLocator ؛ خدمة جدولة جدولة الخدمة الخاصة

    public SchedulerInitialiserContextListener () { webServiceLocator= جديد WebServiceLocator () ، SchedulerService= webServiceLocator.getSchedulerService () ، }

    Genacodicetagpre

    }

  2. أنشئ Servlet مع 1 حيث يتم حقن SchedulerBean في طريقة init () واستدعاء createTimer.

ولكن هذا لا يعمل ، لأنه في البداية نشر webspere تطبيق الويب ، واستدعاء المستمعين ، وتهيئة servlets ، وبعد ذلك فقط نشر ejb.jar حيث توجد جميع ejb. أستطيع أن أرى ذلك في ملف سجل webshpere. لذلك عندما أحاول الحصول على ejb throwEJB تعليق توضيحي أو بحث أحصل على استثناء ، لأنه لم يتم العثور على ejb. قد تكون طريقة أخرى لبدء المؤقت بعد نشر وحدة ejb أو تغيير أمر النشر؟

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

المحلول

يمكنك تعيين ترتيب بدء تشغيل الوحدات الخاصة بك.

بافتراض أنك تقوم بالتطوير مع Rational Application Developer ، قم بما يلي:

انقر بزر الماوس الأيمن فوق مشروع الأذن الخاص بك وانقر فوق Java EE -> فتح WebSphere Application Server Deployment.

ابحث عن قسم التطبيق ، وسترى جميع الوحدات ويمكنك تعيين رمز الترقيم العام لكل منها.

تأكد من أن مشروع الويب الخاص بك الذي يحتوي على "مستمع السياق" له أكبر قيمة يجب أن تكون على ما يرام.

  • تنشئ هذه العملية دليل ibmconfig ضمن META-INF لمشروع الأذن الخاص بك ، تأكد من حزمه في عملية الإنشاء الخاصة بك
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top