Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring集成DSL错误处理_Spring_Spring Integration_Spring Dsl - Fatal编程技术网

Spring集成DSL错误处理

Spring集成DSL错误处理,spring,spring-integration,spring-dsl,Spring,Spring Integration,Spring Dsl,正如标题所说,我正在寻找一个关于DSL流中错误处理的好例子。具体来说,我希望处理来自服务激活器的错误 例如: IntegrationFlows.from(Amqp.inboundAdapter(simpleMessageListenerContainer())) .transform(新的JSONTObObjectTransformer(AlbumDescriptor.class)) .handle(AlbumDescriptor.class,(p,h)->transformXml(p)) .t

正如标题所说,我正在寻找一个关于DSL流中错误处理的好例子。具体来说,我希望处理来自服务激活器的错误

例如:

IntegrationFlows.from(Amqp.inboundAdapter(simpleMessageListenerContainer()))
.transform(新的JSONTObObjectTransformer(AlbumDescriptor.class))
.handle(AlbumDescriptor.class,(p,h)->transformXml(p))
.transform(新对象JSONTransformer())
.handle(Amqp.outboundAdapter(rabbitTemplate).routingKey(“xml转换”))
.get();
如果我的函数
transformXml(p)
抛出异常,如何使其转到特定的errorChannel

如果没有抛出异常,那么一切都会按照我希望的方式运行

当前,如果从该函数引发异常,我会得到以下异常:

2014-09-17 15:26:28.566警告16339---[cTaskExecutor-1]s.a.r.l.条件拒绝ErrorHandler:兔子消息侦听器的执行失败。
org.springframework.amqp.rabbit.listener.ListenerExecutionFailedException:侦听器引发异常
位于org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.wrapToListenerExecutionFailedExceptionIfNeeded(AbstractMessageListenerContainer.java:758)
位于org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.DoInvokeStener(AbstractMessageListenerContainer.java:653)
位于org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:576)
位于org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$001(SimpleMessageListenerContainer.java:78)
位于org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$1.invokeListener(SimpleMessageListenerContainer.java:161)
位于org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.invokeListener(SimpleMessageListenerContainer.java:1177)
位于org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.executeListener(AbstractMessageListenerContainer.java:559)
位于org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.doReceiveAndExecute(SimpleMessageListenerContainer.java:950)
位于org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.receiveAndExecute(SimpleMessageListenerContainer.java:934)
在org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$600(SimpleMessageListenerContainer.java:78)
位于org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1045)
运行(Thread.java:745)
原因:org.springframework.messaging.MessageHandlingException:java.lang.reflect.InvocationTargetException
位于org.springframework.integration.dsl.LambdaMessageProcessor.processMessage(LambdaMessageProcessor.java:125)
位于org.springframework.integration.handler.ServiceActivationHandler.HandlerRequestMessage(ServiceActivationHandler.java:71)
位于org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:170)
位于org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:78)
位于org.springframework.integration.dispatcher.AbstractDispatcher.tryoOptimizedDispatch(AbstractDispatcher.java:116)
位于org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:101)
位于org.springframework.integration.dispatcher.UnicastingDispatcher.dispatcher(UnicastingDispatcher.java:97)
位于org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:77)
位于org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:255)
位于org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:223)
位于org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:109)
位于org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:44)
位于org.springframework.messaging.core.AbstractMessageSendingTemplate.send(AbstractMessageSendingTemplate.java:94)
位于org.springframework.integration.handler.AbstractReplyProducingMessageHandler.sendMessage(AbstractReplyProducingMessageHandler.java:260)
位于org.springframework.integration.handler.AbstractReplyProducingMessageHandler.sendReplyMessage(AbstractReplyProducingMessageHandler.java:241)
位于org.springframework.integration.handler.AbstractReplyProducingMessageHandler.produceReply(AbstractReplyProducingMessageHandler.java:205)
位于org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleResult(AbstractReplyProducingMessageHandler.java:199)
位于org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:177)
位于org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:78)
位于org.springframework.integration.dispatcher.AbstractDispatcher.tryoOptimizedDispatch(AbstractDispatcher.java:116)
位于org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:101)
位于org.springframework.integration.dispatcher.UnicastingDispatcher.dispatcher(UnicastingDispatcher.java:97)
位于org.springframework.integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:77)
位于org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:255)
位于org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:223)
位于org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:109)
在org.s