2015-02-06 4 views
-1

Я знаю, что это, вероятно, довольно простое исправление, но по какой-то причине я не могу найти что-либо в Google.spring: batch listenener issue

Я создал прослушиватель, который займет у вас заданиеПараметр, но по какой-то причине он не работает, и я не уверен, что мне нужно добавить в мой код. Он говорит, что мне нужно реф, но что мне нужно ссылаться, так как все правильно там

<step id="idOfJob" next="nextJob"> 
     <tasklet> 
       <listeners> 
        <listener> 
         <beans:bean 
          class="class.class.Class" 
          scope="step"> 
          <beans:property name="property" value="#{jobParameters['input']}'" /> 
         </beans:bean> 
        </listener> 
       </listeners> 
     </tasklet> 
    </step> 

ответ

1

Per XSD Spring Batch, тем <listener> элемент не поддерживает встроенные определения бина. Вам нужно определить его в качестве внешнего компонента и затем использовать реф следующим образом:

<step id="idOfJob" next="nextJob"> 
    <tasklet ref="myTasklet"> 
      <listeners> 
       <listener ref="myListener"/> 
      </listeners> 
    </tasklet> 
</step> 

<beans:bean id="myListener" class="class.class.Class" scope="step"> 
    <beans:property name="property" value="#{jobParameters['input']}'" /> 
</beans:bean> 

<beans:bean id="myTasklet" class="class.class.MyTasklet"/> 
+0

Так что я сделал это, как вы сделали, и я все еще получаю эту ошибку проблемы настроек: элемента должен иметь ровно один of: атрибут 'ref', элемент, атрибут, или элемент. Найдено: Нет. – Heuristic

+0

Я основывал его как пример из вашего кода. Ваш код не ссылается на задачу, которую вы хотите запустить. Вы пытаетесь запустить тасклет, шаг на основе фрагмента или это абстрактный шаг? –

+0

Я пытаюсь запустить тасклет. В основном у меня есть слушатель, который принимает параметр задания и помещает несколько значений в jobExecutionContext, который я могу использовать позже в коде. – Heuristic