복붙노트

[SPRING] 봄 일괄 처리에서 끝나지 않은 큰 따옴표

SPRING

봄 일괄 처리에서 끝나지 않은 큰 따옴표

나는 Spring Batch를 처음 사용하는데 문제가 생겼다.

내가 일하고있는 배치 응용 프로그램은 구분 된 텍스트 파일의 행을 읽고 처리합니다. 구분 된 텍스트 파일을 읽는 데 FlatFileReader를 사용하도록 응용 프로그램을 구성했지만 읽는 데이터 중 일부에 큰 따옴표가있는 문제가 있습니다. FlatFileParseException는 FlatFileReader가 단일 큰 따옴표를 만날 때 throw되지만 두 개의 큰 따옴표가 있으면 throw되지 않습니다.

누구든지이 문제를 겪었습니까? 그렇다면 올바른 해결책은 무엇입니까? 데이터 자체를 조작하는 것은 불행히도 옵션이 아닙니다. 모든 큰 따옴표 앞에 이스케이프 문자를 추가하려고했지만 예외는 여전히 발생합니다.

어떤 도움이라도 대단히 감사하겠습니다.

해결법

  1. ==============================

    1.파일에 실제 따옴표 (2x 따옴표 문자)가없는 경우 스프링 포럼의 솔루션을 사용하여 DelimitedLineTokenizer의 따옴표 문자를 변경할 수 있습니다

    파일에 실제 따옴표 (2x 따옴표 문자)가없는 경우 스프링 포럼의 솔루션을 사용하여 DelimitedLineTokenizer의 따옴표 문자를 변경할 수 있습니다

                <property name="lineTokenizer">
                    <bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
                        <property name="quoteCharacter" value="@" />
                    </bean>
                </property>
    
  2. ==============================

    2.나는 같은 문제에 부딪쳤다. 그러나 제안 된 솔루션은 최적의 솔루션이 아닙니다. 데이터에 적합한 인용 부호가없는 경우에는 어떻게합니까? 불행히도 우리는 항상 입력 데이터를 제어 할 수있는 것은 아니며 사전 처리하는 것은 좋은 생각이 아닙니다. DelimitedLineTokenizer 소스 코드를 탐색하면서이 솔루션과 함께이 솔루션을 채택하기로 결정했습니다. 클래스를 오버라이드해야하지만이 경우 우리는 완전히 따옴표 문자를 제거합니다.

    나는 같은 문제에 부딪쳤다. 그러나 제안 된 솔루션은 최적의 솔루션이 아닙니다. 데이터에 적합한 인용 부호가없는 경우에는 어떻게합니까? 불행히도 우리는 항상 입력 데이터를 제어 할 수있는 것은 아니며 사전 처리하는 것은 좋은 생각이 아닙니다. DelimitedLineTokenizer 소스 코드를 탐색하면서이 솔루션과 함께이 솔루션을 채택하기로 결정했습니다. 클래스를 오버라이드해야하지만이 경우 우리는 완전히 따옴표 문자를 제거합니다.

    import org.springframework.batch.item.file.transform.DelimitedLineTokenizer;
    
        public class CustomDelimitedLineTokenizer extends DelimitedLineTokenizer {
    
            @Override
            protected boolean isQuoteCharacter(char c) {
                return false;
            }
    
        } 
    

    이 방법으로 DelimitedLineTokenizer는 따옴표 문자를 인식 할 수 없습니다. 물론 우리가이 기능을 필요로한다면이 솔루션은 받아 들일 수 없습니다. 그러나 문제를 해결하는 것보다는 문제를 정렬하는 것이 더 낫다고 생각합니다. 누군가가 도움이되기를 바랍니다.

  3. from https://stackoverflow.com/questions/7734632/unterminated-double-quotes-in-spring-batch by cc-by-sa and MIT license