2014-09-12 3 views
0

Mule 버전 3.5.1을 사용하고 있습니다. 배치 레코드를 실행하려고 해요. 입력 단계 (파일 인바운드)가 성공적으로 완료되었지만 처리 단계가 잘못되었습니다. 반면 프로세스 기록 단계 내에 datamapper 만 있습니다 (xsd와 xml의 유효성을 검사 했으므로 올바른 것으로 보입니다.)).뮬 ESB : 간단한 배치 뮬 흐름 처리 중 레코드 오류시 오류가 발생했습니다

<data-mapper:config name="XML_To_CSV" transformationGraphPath="xml_to_csv.grf" doc:name="XML_To_CSV"/> 
    <batch:job name="businesslogicflowBatch1"> 
    <batch:threading-profile poolExhaustedAction="WAIT"/> 
    <batch:input> 
     <file:inbound-endpoint path="C:\Users\Desktop\IN" responseTimeout="10000" doc:name="File"/> 
     <logger message="*******inputPhase:#[payload]******" level="INFO" doc:name="Logger"/> 
    </batch:input> 
    <batch:process-records> 
     <batch:step name="Batch_Step"> 
      <data-mapper:transform config-ref="XML_To_CSV" doc:name="XML To CSV"/> 
     </batch:step> 
    </batch:process-records> 
    <batch:on-complete> 
     <logger level="INFO" doc:name="Logger"/> 
    </batch:on-complete> 
</batch:job> 

내가 "java.lang.interface 및 java.util.Iterator를"를 만들기 위해 무엇을 찾고 잘 모르겠어요 내 오류

............. 
com.mulesoft.module.batch.engine.DefaultBatchEngine: Input phase completed 
ERROR 2014-09-12 14:26:04,219 [[businesslogicflow].connector.file.mule.default.receiver.01]     org.mule.exception.DefaultMessagingExceptionStrategy: 
Message:Object"org.mule.transport.file.ReceiverFileInputStream" not of correct type. It must be of type "{interface java.lang.Iterable,interface java.util.Iterator,interface org.mule.routing.MessageSequence,interface java.util.Collection}" (java.lang.IllegalArgumentException) 

을 검색 할 수 있습니다.

제안 사항을 알려주십시오. 미리 감사드립니다.

답변

1

필자는 파일 스트림에서 datamapper가 사용할 수있는 객체로 변경해야한다고 생각합니다. 테스트 할 샘플이 없지만 datamapper 앞에 File To String 변환기를 추가하는 것으로 시작합니다.

0

내 입력이 xml이기 때문에 xml을 jaxb 객체로 변환 했으므로 다음과 같은 방법으로 해결했습니다. 프로세스 레코드는 컬렉션 또는 레코드의 레코드를 기대합니다. 자바 구성 요소를 사용하여 Arraylist로 변환합니다. 다음 평소와 같이, datamapper (pojo to csv). 아래 설정을 찾으십시오.

<mulexml:jaxb-context name="JAXB_Context" packageNames="com.to" doc:name="JAXB Context"/> 

<spring:beans> 
    <spring:bean name="NoFactsBean" class="java.util.ArrayList" /> 
</spring:beans> 

<data-mapper:config name="Pojo_To_CSV" transformationGraphPath="pojo_to_csv.grf" doc:name="Pojo_To_CSV"/> 
    <batch:job name="businesslogicflowBatch1"> 
    <batch:threading-profile poolExhaustedAction="WAIT"/> 
    <batch:input> 
     <file:inbound-endpoint path="C:\Users\Desktop\IN" responseTimeout="10000" doc:name="File"/> 
     <mulexml:jaxb-xml-to-object-transformer returnClass="com.to.envelop" jaxbContext-ref="JAXB_Context" doc:name="XML to JAXB Object"/> 
     <component class="com.GenerateList" doc:name="Java"/> 
    </batch:input> 
    <batch:process-records> 
     <batch:step name="Batch_Step" accept-expression="#[getFirstException()]" accept-policy="ALL"> 
      <data-mapper:transform config-ref="Pojo_To_CSV" doc:name="Pojo To CSV"/> 

      <file:outbound-endpoint path="C:\Users\Desktop\OUT" outputPattern="#[function:dateStamp]_convert.csv" responseTimeout="10000" doc:name="File"/> 
     </batch:step> 
    </batch:process-records> 
    <batch:on-complete> 
     <logger level="INFO" doc:name="Logger"/> 
    </batch:on-complete> 
</batch:job>