使用Hawtio启动路由停止Camel消息体知道其类

时间:2016-10-18 16:09:00

标签: apache-camel hawtio

我使用Hawtio和Camel版本2.17.1来控制camel上下文中的路由。 当我停止然后用Hawtio重新启动我的一条路线时,我遇到了一个不寻常的 问题似乎没有意识到它的类。

从队列中读取消息,所有消息都以字符串开头。这些是 然后使用xsd架构成功解组。在选择期间,身体是 尽管被解读为正确的,但总是被发现是一种未知的类型 在此之前的课程。令人困惑的是,然后使用了合适的自定义类型转换器 将邮件转换为预期的类型。

<route id="responseRoute" autoStartup="false">
    <from uri="{{response.from.uri}} />
    <transacted ref="PROPAGATION_REQUIRED_CONSUMER"/>

    // class is String

    <unmarshal ref="unmarshalJAXB" />

    // class is type.A

    <choice>
        <when>
            <simple>${body} is 'type.A'</simple>
            <log message="Body is type A" />
            <convertBodyTo type="type.C" />
        </when>
        <when>
            <simple>${body} is 'type.B'</simple>
            <log message="Body is type B" />
            <convertBodyTo type="type.C" />
        </when>
        <otherwise>
            // always this option - unknown type
            <log message="Body is unknown type" />
            <convertBodyTo type="type.C" />
        </otherwise>
    </choice>

    <marshal ref="marshalJAXB" />

    <to uri="{{response.to.uri}}" />
</route>

如果autoStartup选项设置为true,则每条消息都会成功处理, 点击选择块中的正确选项。

为什么使用Hawtio启动路由会阻止消息体知道它是什么类? 有没有办法解决这个问题?

0 个答案:

没有答案