我继承了一些需要修改的旧骡子流,我想知道处理以前做过的正确方法。
电流:
<processor-chain doc:name="Processor Chain">
<all doc:name="All">
<file:outbound-endpoint
path="archive"
outputPattern="#[header:INBOUND:originalFilename]_#[function:datestamp:${standard.date.format}]_#[function:systime]"
responseTimeout="${standard.response.timeout.millis}"
doc:name="File Archive"/>
<file:outbound-endpoint
path="inbound"
outputPattern="${brand.name}.refresh.#[function:datestamp:${standard.date.format}]_#[function:systime]"
responseTimeout="${standard.response.timeout.millis}"
encoding="UTF-8"
doc:name="Inbound"/>
<logger level="WARN" message="Downloaded file to inbound/${brand.name}.refresh" doc:name="Download File Logger"/>
</all>
</processor-chain>
看到All被弃用了,他们说要使用Scatter Gather我试过这个:
<processor-chain doc:name="Processor Chain">
<scatter-gather doc:name="Scatter-Gather">
<file:outbound-endpoint
path="archive"
outputPattern="#[header:INBOUND:originalFilename]_#[function:datestamp:${standard.date.format}]_#[function:systime]"
responseTimeout="${standard.response.timeout.millis}"
doc:name="File Archive"/>
<file:outbound-endpoint
path="inbound"
outputPattern="${brand.name}.refresh.#[function:datestamp:${standard.date.format}]_#[function:systime]"
responseTimeout="${standard.response.timeout.millis}"
encoding="UTF-8"
doc:name="Inbound"/>
<logger level="WARN" message="Downloaded file to inbound/${brand.name}.refresh" doc:name="Download File Logger"/>
</scatter-gather>
</processor-chain>
但这给了我以下例外:
ERROR [esicustom].ClientFTPPull.stage1.02 org.mule.exception.DefaultMessagingExceptionStrategy:
********************************************************************************
Message : null (java.lang.UnsupportedOperationException). Message payload is of type: byte[]
Type : org.mule.api.MessagingException
Code : MULE_ERROR-29999
Payload : [B@11164a7b
JavaDoc : http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html
********************************************************************************
Exception stack is:
1. null (java.lang.UnsupportedOperationException)
org.mule.VoidMuleEvent:50 (null)
2. null (java.lang.UnsupportedOperationException). Message payload is of type: byte[] (org.mule.api.MessagingException)
org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor:32 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html)
********************************************************************************
Root Exception stack trace:
java.lang.UnsupportedOperationException
at org.mule.VoidMuleEvent.getMessage(VoidMuleEvent.java:50)
at org.mule.api.routing.AggregationContext$1.evaluate(AggregationContext.java:41)
at org.apache.commons.collections.CollectionUtils.select(CollectionUtils.java:517)
at org.apache.commons.collections.CollectionUtils.select(CollectionUtils.java:498)
at org.mule.api.routing.AggregationContext.collectEventsWithExceptions(AggregationContext.java:84)
at org.mule.routing.CollectAllAggregationStrategy.aggregate(CollectAllAggregationStrategy.java:32)
at org.mule.routing.ScatterGatherRouter.processResponses(ScatterGatherRouter.java:197)
at org.mule.routing.ScatterGatherRouter.process(ScatterGatherRouter.java:135)
at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24)
at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:58)
at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44)
at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24)
at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:58)
at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44)
at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24)
at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:58)
at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44)
at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24)
at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:58)
at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44)
at org.mule.routing.AbstractSelectiveRouter.processEventWithProcessor(AbstractSelectiveRouter.java:308)
at org.mule.routing.AbstractSelectiveRouter.routeWithProcessors(AbstractSelectiveRouter.java:298)
at org.mule.routing.AbstractSelectiveRouter.process(AbstractSelectiveRouter.java:198)
at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24)
at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:58)
at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44)
at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24)
at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44)
at org.mule.interceptor.AbstractEnvelopeInterceptor.process(AbstractEnvelopeInterceptor.java:51)
at org.mule.processor.AsyncInterceptingMessageProcessor.processNextTimed(AsyncInterceptingMessageProcessor.java:118)
at org.mule.processor.AsyncInterceptingMessageProcessor$AsyncMessageProcessorWorker$1.process(AsyncInterceptingMessageProcessor.java:189)
at org.mule.processor.AsyncInterceptingMessageProcessor$AsyncMessageProcessorWorker$1.process(AsyncInterceptingMessageProcessor.java:182)
at org.mule.execution.ExecuteCallbackInterceptor.execute(ExecuteCallbackInterceptor.java:16)
at org.mule.execution.HandleExceptionInterceptor.execute(HandleExceptionInterceptor.java:30)
at org.mule.execution.HandleExceptionInterceptor.execute(HandleExceptionInterceptor.java:14)
at org.mule.execution.BeginAndResolveTransactionInterceptor.execute(BeginAndResolveTransactionInterceptor.java:54)
at org.mule.execution.ResolvePreviousTransactionInterceptor.execute(ResolvePreviousTransactionInterceptor.java:44)
at org.mule.execution.SuspendXaTransactionInterceptor.execute(SuspendXaTransactionInterceptor.java:50)
at org.mule.execution.ValidateTransactionalStateInterceptor.execute(ValidateTransactionalStateInterceptor.java:40)
at org.mule.execution.IsolateCurrentTransactionInterceptor.execute(IsolateCurrentTransactionInterceptor.java:41)
at org.mule.execution.ExternalTransactionInterceptor.execute(ExternalTransactionInterceptor.java:48)
at org.mule.execution.RethrowExceptionInterceptor.execute(RethrowExceptionInterceptor.java:28)
at org.mule.execution.RethrowExceptionInterceptor.execute(RethrowExceptionInterceptor.java:13)
at org.mule.execution.TransactionalErrorHandlingExecutionTemplate.execute(TransactionalErrorHandlingExecutionTemplate.java:109)
...
********************************************************************************
从FTP站点获取文件并将其转储到这样的两个位置的推荐方法是什么?
答案 0 :(得分:2)
你刚遇到一个错误,请看看这个issue。它固定在3.6.0,当然还有3.6.1。 尝试在端点之后添加消息处理器作为解决方法,如JIRA票证中所述。
答案 1 :(得分:-1)
在你的scatter-gather定义中删除处理器链范围,并在itadd对象到字符串变换器之前。