Это моя конфигурация шага. Мой метод пропуска слушателей onSkipInWrite () вызывается правильно. Но onSkipInRead () не вызывается. Я обнаружил это, намеренно выбрасывая исключение нулевого указателя от моего читателя.
<step id="callService" next="writeUsersAndResources">
<tasklet allow-start-if-complete="true">
<chunk reader="Reader" writer="Writer"
commit-interval="10" skip-limit="10">
<skippable-exception-classes>
<include class="java.lang.Exception" />
</skippable-exception-classes>
</chunk>
<listeners>
<listener ref="skipListener" />
</listeners>
</tasklet>
</step>
Я читал несколько форумов и менял теги listeners на обоих уровнях: внутри блока и вне тасклета. Ничего не работает ...
Добавление моего пропуска слушателя сюда
package com.legal.batch.core;
import org.apache.commons.lang.StringEscapeUtils;
import org.springframework.batch.core.SkipListener;
import org.springframework.jdbc.core.JdbcTemplate;
public class SkipListener implements SkipListener<Object, Object> {
@Override
public void onSkipInProcess(Object arg0, Throwable arg1) {
// TODO Auto-generated method stub
}
@Override
public void onSkipInRead(Throwable arg0) {
}
@Override
public void onSkipInWrite(Object arg0, Throwable arg1) {
}
}
Эксперты, пожалуйста, предложите