2016-03-30 2 views
0

У меня ошибка, когда 0 записей с split. С одной записью или несколькими записями она работает нормально Но если нет записей с разделом, тогда это дает ошибку Я получил эта ошибкаОшибка в обработке нулевых записей с разбивкой пакетной обработки: 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) 

Мой поток, как следовать

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

Пожалуйста, помогите мне решить эту ошибку. Спасибо

ответ

0

исключение, которое он сам говорит, что вы получаете строку в качестве входных данных для компонента сплиттера, который вызывает проблему.

убедитесь, что вы передаете итерируемый объект в компонент разветвителя.

 Смежные вопросы

  • Нет связанных вопросов^_^