Mule ESB:处理记录statge时出错的简单批处理Mule流

Mule ESB:处理记录statge时出错的简单批处理Mule流,mule,mule-studio,mule-component,Mule,Mule Studio,Mule Component,我正在使用Mule版本3.5.1。我正在尝试运行批处理记录。输入阶段(文件入站)已成功完成,但处理阶段出错,而流程记录阶段中只有datamapper(我还根据xml验证了xsd,它看起来是正确的) 我不确定要使“java.lang.interface和java.util.iterator”成为什么 请告诉我你的建议。先谢谢你 我认为您需要将其从filestream更改为datamapper可以使用的对象。我没有配置要测试的示例,但我将首先在datamapper前面的String transfor

我正在使用Mule版本3.5.1。我正在尝试运行批处理记录。输入阶段(文件入站)已成功完成,但处理阶段出错,而流程记录阶段中只有datamapper(我还根据xml验证了xsd,它看起来是正确的)

我不确定要使“java.lang.interface和java.util.iterator”成为什么


请告诉我你的建议。先谢谢你

我认为您需要将其从filestream更改为datamapper可以使用的对象。我没有配置要测试的示例,但我将首先在datamapper前面的String transformer中添加一个文件

我通过以下方式进行了解析,因为我的输入是xml,所以我将xml转换为jaxb对象。流程记录将期望集合或列表中的记录。使用java组件转换为Arraylist。然后像往常一样,使用datamapper(pojo到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> 

.............
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)  
    <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>