2017-09-17 1 views
0

아래 코드를 사용하여이 코드를 사용하여 데이터베이스 테이블을 JSON 파일로 내보내려는 경우 코드가 실행되지만 반환 된 데이터 행을 레코드 당 파일로 분할합니다. 예상 한대로 하나의 파일이 아닙니다.아파치 카멜을 사용하여 JSon으로 데이터베이스 테이블 내보내기 예상대로 작동하지 않음

낙타의 경로 : 내 XML

<bean id="route" class="com.huyqtran.JSonRoute"/> 
<camelContext xmlns="http://camel.apache.org/schema/spring"> 
    <routeBuilder ref="route"/> 
</camelContext> 
<bean id="dataSource" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 
    <property name="url" value="jdbc:mysql://localhost:3306/assignment01?useSSL=false"/> 
    <property name="username" value="root"/> 
    <property name="password" value=""/> 
</bean> 

public void configure() throws Exception { 
    JsonDataFormat jsonFormat = new JsonDataFormat(JsonLibrary.XStream); 
    jsonFormat.setUnmarshalType(Customer.class); 
    from("sql: SELECT * FROM assignment01.staff?dataSourceRef=dataSource") 
      .marshal(jsonFormat) 
      .to("file:data/test"); 
} 

나는 응용 프로그램이 단지 전체 테이블에 대해 하나 개의 JSON 파일을 만들 것으로 기대합니다.

+0

그리고 어떻게됩니까? 그리고 어떤 버전의 Camel을 사용하고 있습니까? –

+0

테이블의 각 레코드를 파일로 변환합니다. 2.19.2 버전을 사용 중입니다. –

답변

0

옵션 fileExist=Append 사용하여 파일에 추가 할 낙타 알려주기 : 예, http://camel.apache.org/file2 예를 들어

.to("file:data/test?fileExist=Append"); 

또는 전체 결과 세트의 반복자의 회전에 의해 반환하도록 SQL 구성 요소를 말할 useIterator=false

from("sql: SELECT * FROM assignment01.staff?dataSourceRef=dataSource&useIterator=false") 
+0

고맙습니다. 지금은 잘 작동합니다. –

+0

어쩌면이 질문을 대답으로 표시 할 수 있습니까? –

관련 문제