使用Annotation的异常路由器

时间:2017-02-01 14:19:17

标签: spring-integration

我正在尝试将我的代码转换为java注释,但我坚持使用

<int:exception-type-router input-channel="failed-email-fetch"  default-output-channel="errorChannel">
        <int:mapping exception-type="com.XXXXXX.RateException" channel="customError" />
</int:exception-type-router>

如果我使用@Router我不知道该返回什么,这就是我使用但不起作用

@ServiceActivator(inputChannel = "failedEmailFetch")
public ErrorMessageExceptionTypeRouter handleError(MessageHandlingException messageHandlingException) {
    ErrorMessageExceptionTypeRouter errorMessageExceptionTypeRouter = new ErrorMessageExceptionTypeRouter();
    errorMessageExceptionTypeRouter.setChannelMapping("com.XXXXXX.exception.MessageException","customError");
    errorMessageExceptionTypeRouter.setDefaultOutputChannelName("errorChannel");
    return errorMessageExceptionTypeRouter;
}

2 个答案:

答案 0 :(得分:1)

@Bean注释位于@ServiceActivator时,您还需要MessageHandler

@ServiceActivator用于POJO消息传递。

请参阅Annotations on Beans

消费端点有2个bean,处理程序和消费者; @ServiceActivator定义了消费者。 @Bean是徒手。

答案 1 :(得分:0)

我最终使用以下不确定它是否是最佳方式

<xsl:template match="/*/*/tag">
    <xsl:if test="position() gt 1">,</xsl:if>
    {

    "value" : "<xsl:value-of select="@v"/>"

    }
</xsl:template> 

<xsl:template match="/"> 
    <xsl:variable name="duplicates" as="element()*">      
        <xsl:for-each-group select="/*/*/tag[@k='fhrs:id']" group-by="@v">
            <xsl:sequence select="current-group() [current-group()[2]]"/>
        </xsl:for-each-group>
    </xsl:variable>
    <xsl:apply-templates select="$duplicates"/>
</xsl:template>