Spring batch

3 respostas
springjava
J

Boa noite galera,

Tenho que migrar um job em spring batch para java e eu não sei como passar o seguinte codigo. podem me ajudar?

<batch:step id="STEP_PROCESSAR_PROTOCOLOS_ASLC_ANTECIPACAO" next="VERIFICAR_ARQUIVOS_ASLC_PRO_ANTECIPACAO">
	<batch:tasklet>
		<batch:chunk reader="stepProcessarProtocolosAntReader" processor="stepProcessarProtocolosAntProcessor"
				writer="stepProcessarProtocolosAntWriter" commit-interval="1" />
	</batch:tasklet>
	
	<batch:listeners>
		<batch:listener ref="stepProcessarProtocolosAntListener" />
	</batch:listeners>

Eu não sei como passar o bloco do batch listener. Ja que ele não faz parte do chunck acima

3 Respostas

L

Como vc migrou esse batch para java? Migrou a lógica para um projeto Spring mesmo? Está usando schedule?

Qual a responsabilidade desse listener?

A

então man, o Listener é o que é um Listener… :smiley: Ou seja, ele tem uma função de escutar/interceptar a execução de seu batch e com base em algum filtro ou momento da execução, ele vai fazer o seu trabalho.

Já que você transformou o seu batch em projeto Java puro, você tem que saber qual era o papel do Listener no processo e por o seu código na nova estrutura de forma que ele continue fazendo o papel que tinha que fazer.

Aí pra lhe ajudar mais temos que entender o que o Listener fazia no seu batch, como está agora seu bacth em código Java e como ele é executado.

J

Desculpa a demora pessoal.

O problema que eu to tendo é que no listener que esta mapeado no xml, ele implementa o item writer listener e um item read listener

Bloco de Citação
public abstract class BaseRetornoAslcStepListener extends ListenersBase implements ItemWriteListener, ItemReadListener {

Na hora que vou mapear isso no meu código java ele me devolve um erro de compilação

Bloco de Citação
The method listener(Object) is ambiguous for the type SimpleStepBuilder<String,ArquivoASLCDOC>

Bloco de Citação

<a class="mention" href="/u/bean">@Bean</a>

public Step stepProcessarProtocolosAslcAntecipacao() {

return stepBuilderFactory.get(“STEP_PROCESSAR_PROTOCOLOS_ASLC_ANTECIPACAO”)

.<String, ArquivoASLCDOC>chunk(150)

.reader(stepProcessarProtocolosAntReader)

.processor(stepProcessarProtocolosAntProcessor)

.writer(stepProcessarProtocolosAntWriter)

.listener(stepProcessarProtocolosAntListener)(erro acontece aqui)

.build();

}
Criado 21 de agosto de 2019
Ultima resposta 23 de ago. de 2019
Respostas 3
Participantes 3