2016-03-22 14 views
0

Spring Integration uygulamasında yeniyim ve bir dosyayı okumaya ve jms.Message'da sarılmış olan jms Queue'ye gönderilmesi gereken özel bir nesneye dönüştürmeye çalışıyorum. Her şey ek açıklama kullanılarak yapılmalıdır.Yay Entegrasyonu: Trafo: Nesne için dosya

Aşağıdakileri kullanarak dosyaları dizinden okuyorum.

@Bean 
@InboundChannelAdapter(value = "filesChannel", poller = @Poller(fixedRate = "5000", maxMessagesPerPoll = "1")) 
public MessageSource<File> fileReadingMessageSource() { 
    FileReadingMessageSource source = new FileReadingMessageSource(); 
    source.setDirectory(new File(INBOUND_PATH)); 
    source.setAutoCreateDirectory(false); 
    /*source.setFilter(new AcceptOnceFileListFilter());*/ 
    source.setFilter(new CompositeFileListFilter<File>(getFileFilters())); 
    return source; 
} 

Sonraki Adım, dosya içeriğini Fatura Nesnesine dönüştürüyor (varsa). Transformer'ım için ne tür bir mesaj tipi olacağını bilmek istiyorum ve nasıl dönüştürmeliyim. Buraya yardım eder misiniz lütfen. Gelen veri türü olacağını ve hangi dönüştürülmüş nesne türü ne olmalı emin değilim (o Message içine sarılmış edilmelidir?)

@Transformer(inputChannel = "filesChannel", outputChannel = "jmsOutBoundChannel") 
public ? convertFiletoInvoice(? fileMessage){ 

    } 

cevap

0

yükü, bir File (java.io.File) 'dir.

Dosyayı ve çıktılarını istediğiniz gibi okuyabilirsiniz (String, byte[], Invoice vb.). Ya da bazı standart transformatörleri (örneğin, FileToStringTransformer, JsonToObjectTransformer vb.) Kullanabilirsiniz. TextMessage nesne dönüştürür

JMS adaptörü, ObjectMessage vb

İlgili konular