2016-03-30 7 views
0

Ich habe Fehler, während 0 Datensätze mit Split .. Mit einem Datensatz oder mehrere Datensätze funktioniert es gut Aber wenn es keine Datensätze mit Split gibt es gibt Fehler Ich habe dieser FehlerFehler in der Verarbeitung von Null-Datensätze mit Split-Batch-Verarbeitung: mule esb

org.mule.api.MessagingException: Object "java.lang.String" 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) (com.mulesoft.module.batch.exception.BatchException). Message payload is of type: String at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:32) at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107) at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:88) at org.mule.processor.BlockingProcessorExecutor.execute(BlockingProcessorExecutor.java:59) at org.mule.processor.chain.DefaultMessageProcessorChain.doProcess(DefaultMessageProcessorChain.java:80) 

Mein Flow ist als

folgen
<batch:job name="testBatch"> 
     <batch:input> 
      <component class="org.test.d1.Find" doc:name="Java"/> 
      <file:outbound-endpoint path="test" outputPattern="test.xml" responseTimeout="10000" doc:name="File"/> 

      <logger message="COUNT -&gt; #[xpath('fn:count(//po:Account)')]" level="INFO" doc:name="Logger"/> 
      <expression-filter expression="#[xpath('fn:count(//po:Account)')!=0.0]" doc:name="Expression"/> 
      <splitter evaluator="xpath" expression="//po:Account" doc:name="Splitter"/> 
      <collection-aggregator failOnTimeout="true" doc:name="Collection Aggregator"/> 
     </batch:input> 
     <batch:process-records> 
      <batch:step name="Batch_Step"> 
      </batch:step> 
     </batch:process-records> 
     <batch:on-complete> 
      <logger level="INFO" doc:name="Logger"/> 
      <set-payload value="Total Record : #[payload.totalRecords] fail Records : #[payload.failedRecords] successfull records :#[payload.successfulRecords +'\n'] " doc:name="Set Payload"/> 

     </batch:on-complete> 
    </batch:job> 

Bitte helfen Sie mir diesen Fehler zu beheben. Danke

Antwort

0

die Ausnahme es selbst sagt, dass Sie einen String als Eingabe für die Splitter-Komponente erhalten, die das Problem verursacht.

Stellen Sie sicher, dass Sie der Splitterkomponente ein iterierbares Objekt zuweisen.