2012-06-12 2 views
0

두 도메인 모델의 패키지를 변경하면 위의 오류를 해결할 수 있습니다. 이전 링크 Apache camel processing two csv files simultaneously에 게시했습니다.Apache camel 동시에 두 개의 .csv 파일 읽기

그러나 다른 오류가 발생하여 두 개의 .csv 파일 처리가 롤백됩니다. 두 .csv 파일에는 교환을 처리하기위한 두 개의 별도 프로세서가 있습니다.

ERROR: [#|2012-06-12T10:23:54.651+1000|SEVERE|glassfish3.0.1|org.apache.camel.processor.DefaultErrorHandler|_ThreadID=35;_ThreadName=Thread-1;|Failed delivery for (MessageId: ID-GEPC7848-52123-1339460612530-0-651 on ExchangeId: ID-GEPC7848-52123-1339460612530-0-658). Exhausted after delivery attempt: 1 caught: java.lang.NullPointerException

+0

걸렸습니다 : java.lang.NullPointerException. 나는 이것을 디버깅하여 프로세서를 통해 무엇이 잘못되었는지 살펴볼 것입니다. 물론, 그것은 다른 것일 수 있습니다. 스레딩 종속성이 있습니까? 공유 변수? 코드를 게시 할 수 있습니까? –

+0

문제를 디버깅했습니다. 문제는 두 번째 파일이 BindyCsvFactory.java 클래스의 bind (List 토큰, Map model, int line) 메소드에서 처리 될 때 모델 맵은 model1과 model2 모델을 모두 가지므로 두 번째 파일 파일이 코드 행 field.set (modelField, value)에서 처리 중입니다. 단 하나가 아닌 두 모델 모두에 설정됩니다. 그러나 필드는 코드 당 하나의 데이터 형식 모델에만 매핑해야합니다. 어떻게 수정합니까? 이? –

+0

문제는 두 개의 파일을 처리하는 하나의 스레드가 문제를 일으키고 있다는 것입니다. 두 개의 다른 스레드로 분리하여 작업하게 될 것입니다. BindyCsvDataFormat의 경우 다른 모든 dataformat과 마찬가지로 동기화 된 방식으로 실행해야합니다. 클래스가 실행됩니다. –

답변

0

Nullpointer 예외는 항상 버그에 대한 좋은 후보입니다. DEBUG 로깅으로 이것을 시도하고 완전한 스택 추적을 얻었는지 확인할 수 있습니까? stacktrace와 함께 낙타 jira에서 재현하는 방법에 대한 jira 문제를 만들 수 있다면 좋을 것입니다.