ItemReader Rückkehr eine FlatFileItemReader mit ganze Zeilen als strings

Mit Spring Batch, die ich versuche zu bekommen jede Zeile der input-Datei als String geben es die ItemProcessor ohne "CSV-parsing" in der ItemReader.

Ich kam mit einer Konfiguration Java-Klasse (mit @Configuration und @EnableBatchProcessing) mit den folgenden reader() Methode, die das nächste ItemProcessor zu werfen ClassCastException obwohl.

Diese ItemReader Lesen sollte, eine Eingabe-Datei und übergeben Sie an den ItemProcessor jede Zeile der Eingabedatei als String.

@Bean
public ItemReader<String> reader() {

    FlatFileItemReader<String> reader = new FlatFileItemReader<>();
    reader.setResource(new ClassPathResource("data-to-process.txt"));
    reader.setLineMapper(new DefaultLineMapper() {{
        setLineTokenizer(new DelimitedLineTokenizer());
        setFieldSetMapper(new PassThroughFieldSetMapper());
    }});
    return reader;
}

Beim ausführen des vorherigen code, den ich erhalte eine Ausnahme in der ItemProcessor was erwartet einen String von der reader():

    java.lang.ClassCastException: org.springframework.batch.item.file.transform.DefaultFieldSet cannot be cast to java.lang.String

Benutzerdefinierte ItemProcessor ich geschrieben habe, ist definiert als:

    public class MyOwnCustomItemProcessor implements ItemProcessor<String, MyOwnCustomBusinessBean> {

Ich glaube, ich sollte zu diesem PassThroughFieldSetMapper im ItemReader und möchte ich nicht verwenden, jede Art von tokenizer. Nach den Unterlagen, die ich denke, ich muss es verwenden und ich kann es nicht verhindern, aber ich behalte immer Ausnahmen.

Wie kann ich die "übertragen" jede Eingabezeile direkt als String zu einem ItemProcessor z.B. ?

InformationsquelleAutor TPPZ | 2014-02-20
Schreibe einen Kommentar