0
<beans>
<batch:job id="job1" restartable="false">
<batch:step id="step1" next="step2">
<batch:tasklet>
<batch:chunk reader="readerA" writer="writerA" commit-interval="1" />
</batch:tasklet>
</batch:step>
<batch:step id="step2">
<batch:tasklet ref="tasklet1"/>
</batch:step>
<batch:listeners>
<batch:listener ref="listenerA" />
</batch:listeners>
</batch:job>
<bean id="listenerA" class="com.example.ListenerA" scope="step">
<property name="archiveDate" value="#{jobParameters['jobRunDate']}" />
</bean>
</beans>
爲什麼上面給我以下錯誤:Spring批處理:如何在步驟偵聽器中使用佔位符?
java.lang.IllegalStateException: No context available while replacing placeholders.
什麼是解決這個問題的最好方法?
不幸的是,這是一個工作監聽者。 – 2011-04-07 17:51:08
作業執行偵聽器包含以下方法:void beforeJob(JobExecution執行)和void afterJob(JobExecution執行)void。正如我在我的回答中所說的,如果它是一個作業偵聽器,則不需要佔位符 - 在beforeJob中只需使用execution.getJobInstance()。getJobParameters()。getDate(「jobRunDate」); (假設它是一個日期,如果沒有的話,使用適當的getter作爲值)。 – MetroidFan2002 2011-04-10 23:12:12
這不似乎違反了通過xml進行配置的想法嗎? – 2011-05-19 23:34:04