Salve a tutti,
avrei bisogno di usare una casella di posta come fonte per un ItemReader all'interno di un processo Spring Batch. Quello che vorrei ottenere è: verifico se ci sono nuove email, se sì, salva in un database e poi fai delle operazioni. Ho già scritto una classe che riceve le email:
Nel file config.xml c'è questo pezzo:codice:public ImapMailReceiver() { ApplicationContext context = new ClassPathXmlApplicationContext("config.xml"); DirectChannel inputChannel = context.getBean("mailChannel", DirectChannel.class); inputChannel.subscribe(new MessageHandler() { @Override public void handleMessage(Message<?> message) throws org.springframework.integration.MessagingException { // qui ho il codice che legge la mail e mi estrae le informazioni che mi servono } }); }
Il mio problema è che non so come collegare tutto questo in un flusso batch reader-processor-writer. Nel senso, leggo l'email.. ma come la passo al processor? La mia classe non è un reader e non saprei come trasformare il tutto in un readercodice:<int:channel id="mailChannel" /> <mail:inbound-channel-adapter id="mailReceiver" store-uri="imap://DATI_DI_ACCESSO_CHE_OMETTO:143/Inbox/TEST_IN" should-delete-messages="false" should-mark-messages-as-read="true" channel="mailChannel" java-mail-properties="javaMailProperties" mail-filter-expression="subject matches '\u0023\u0023SMS\u0023\u0023 .*'"> <int:poller max-messages-per-poll="1" fixed-rate="15000" /> </mail:inbound-channel-adapter>![]()
Magari è una banalità dovuta al fatto che è la prima volta che uso Spring Batch, cosa mi sfugge? Grazie![]()

Rispondi quotando
