سؤال

أنا أحاول أن أجعل دفعة باستخدام جافاكس.دفعة 1.0 مع جافا سي 7 و غويس.

قراءة وثائق جافاي 7 حول جسر - 352 من الواضح أنها إعداد التعليمات البرمجية ليتم تنفيذها داخل غلاسفيش ووجدت أي ذكر حول كيفية تشغيله خارج.

الآن مشكلتي هي حول واجهة جوبكونتيكست التي ينبغي حقنها تلقائيا من خلال سدي:كيفية جعله مع غويس?محاولة شيء من هذا القبيل:

@Provides
@Inject
JobContext providesJobContext(Provider<JobContext> provider) {
    return provider.get()
}

هو خطأ من الناحية المفاهيمية ويؤدي إلى ستاكوفيرفلورور (حتى هنا أنا :>).هل من الضروري حقا?أمثلة حقنه للوصول إلى خصائص الوظيفة.هل يمكنني الوصول إليهم ، ربما ، من خلال

jobOperator.getParameters(<executionID>)

?

يعطيكم الصّحة.

أنا لم تستخدم لحام (والتي ، كما أفهم ، من شأنها أن توفر سدي على جافا سي) وبالتالي فإن البديل الوحيد سيكون دفعة الربيع.

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

المحلول

شرح واجهة برمجة التطبيقات

أولا ، للتوضيح بين" خصائص الوظيفة "و"معلمات الوظيفة".

"معلمات الوظيفة" هي العقارات مرت إلى JobOperator#start(String,Properties) و ال JobOperator#restart(long,Properties).

يمكن الوصول إلى" خصائص الوظيفة " عبر JobContext#getProperties() هم أبناء / الوظيفة / العقارات عنصر.

على سبيل المثال.هذه المهمة لها خاصيتان في الكائن الذي تم إرجاعه بواسطة: JobContext#getProperties()

<job>
   <properties>
    <property name="initialAmount" value="100" />
    <property name="bonusAmount" value="#{jobParameters['bonusAmount']}?:100;" />
   </properties>
</job>

لذا فإن معلمة الوظيفة هي مجرد مصدر واحد محتمل للقيم لتعريف خاصية الوظيفة.

بقدر الوصول إلى المعلمات, JobOperator.getParameters(long executionId), ، ربما لا يساعدك هذا كثيرا لأن الطريقة الأكثر طبيعية للحصول على معرف التنفيذ الحالي هي من نفس السياق الذي تواجه فيه مشكلة في الحقن.

سي مع غويس

يبدو أنك تشير إلى تنفيذ مرجع جسر 352 (جباتش, ، المدرجة في غلاسفيش).

صحيح أننا لم نفكر كثيرا في سي مع حقن التبعية غويس ، وأنا لست ما يكفي من خبير لمعرفة ما إذا كان ذلك يساعد حتى على ذكر.

مع اللحام ، في غلاسفيش نحن في الواقع استخدام تقنية مثل هذا للسماح وقت التشغيل دفعة لملء نقاط حقن محددة دفعة.

public class BatchProducerBean {
...
@Produces
@Dependent
public JobContext getJobContext() {
    ...
        return JobContextImpl;
    }
}

سأكون سعيدا لسماع المزيد عن التكامل غويس مع جباتش.يمكنك المتابعة في المنزل لمصدر المشروع (لا يوجد ويكي حقيقي حتى الآن) على جيثب

نصائح أخرى

Weld هو التنفيذ المرجعي ل JSR-299 الذي يجلب CDI في Javaee 6. يتم تضمين هذا التنفيذ المرجعي في Glassfish حتى تتمكن من استخدامه بشكل فعال.

مثال من Oracle الموجود هنا :

giveacodicetagpre.

Quote:

لم أستخدم اللحام

هنا لا يهم التنفيذ لأنها تنفذ فقط مواصفات JSR.

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