2016-04-01 16 views
0

Yayında çalışırken dosya bulunmazsa, istisna nasıl tanımlanır Spring Batch (sürüm 3.0.6) üzerinde çalışmaya yeni başladım. İşim var ve adım adım Reader -> İşlemci -> Yazıcım var.Okuma (Bahar Toplu İş)

Okuma sırasında dosya bulunamazsa, özel durumun nasıl yakalanabileceğini veya tespit edilebileceğini nasıl belirleriz. Bu durumda e-postayı tetiklemek istiyorum.

cevap

0

ItemStream#open tarafından atılan istisnayı (FlatFileItemReader adresindeki bir dosyanın açılmasıyla) işlemek için e-postanızı oradan göndererek StepExecutionListener kullanabilirsiniz. Başarısızlığa neden olan istisnayı elde etmek için, adımın başarısız olmasına neden olan istisnayı içerecek StepExecution#getFailureExceptions'a bakabilirsiniz.

Burada javadoc içinde StepExecutionListener hakkında daha fazla bilgi edinebilirsiniz: https://docs.spring.io/spring-batch/apidocs/org/springframework/batch/core/StepExecutionListener.html

+0

Zaten ItemReaderListener (OnError yöntemi) çalıştı. ama bulduğum şey, eğer dosya mevcut değilse (yanlış bir dosya adı verdim), atma ** org.springframework.batch.item.ItemStreamException: okuyucuyu başlatılamadı **. Dinleyici onReadError yöntemi uygulanmıyor. –

+0

Ah. Bunun için üzgünüm. Dosyanın açılmasının 'ItemStream # open' içinde gerçekleştiğini unutmuştum. Bu durumda, 'StepExecutionListener # afterStep' kullanın. Sağlanan "StepExecution # getFailureExceptions" dahilinde, hataya neden olan istisnayı bulacaksınız. Cevabımı buna göre güncelledim. –