Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    [Spring] Leggere da email con ItemReader e passare al processor

    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:

    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
                }
            });
        }
    Nel file config.xml c'è questo pezzo:
    codice:
            <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>
    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 reader
    Magari è una banalità dovuta al fatto che è la prima volta che uso Spring Batch, cosa mi sfugge? Grazie
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Stavo sbagliando l'approccio, quello che stavo cercando di fare aveva poco senso.

    La soluzione migliore per quello che devo fare è leggere le email quando arrivano e salvare una riga in un database per ogni email arrivata. Poi uso questo database come sorgente di un reader per far partire il mio batch.

    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.