代码之家  ›  专栏  ›  技术社区  ›  akinKaplanoglu

Apache骆驼路由多播不会复制交换消息

  •  0
  • akinKaplanoglu  · 技术社区  · 10 年前

    我做了一个 camel route 在我的应用程序中 spring dsl 。我想复制 exchange body 使用 multicast EIP。但当我使用这个时,我可以使用 交换机构 从我的一个 endpoint 在第二个(它是多播中的端点)中,交换主体是 null 。为什么会这样?

    编辑 这是我的路线:

    <route errorHandlerRef="dlc1" id="mobitRoute1">
    
                <from uri="cxf:bean:mobit-okuma?dataFormat=PAYLOAD" />
                <wireTap uri="activemq:queue:anaMobitQueue" />
                <to uri="velocity:response.vm" />
    
            </route>
    
            <route id="mobitRoute2" errorHandlerRef="dlc2">
    
                <from uri="activemq:queue:anaMobitQueue" />
                <unmarshal ref="myJaxb" />
                <to uri="bean:timeChanging" />
                <multicast>
    
                    <to uri="activemq:queue:mobitOkumaq" />
                    <to uri="activemq:queue:AysMobit" />
    
                </multicast>
            </route>
    
            <route errorHandlerRef="dlc3" id="mobitRoute3">
    
                <from uri="activemq:queue:AysMobit" />
                <!-- <unmarshal ref="myJaxb" /> -->
                <to uri="bean:fromPayload" />
                <to uri="cxf:bean:ays-service?dataFormat=POJO" />
    
            </route>
    
            <route errorHandlerRef="dlc4" id="mobitRoute4">
    
                <from uri="activemq:queue:mobitOkumaq" />
                <to uri="cxf:bean:mobit-okumaReal?dataFormat=POJO" />
    
            </route>
    
    1 回复  |  直到 10 年前
        1
  •  0
  •   akinKaplanoglu    10 年前

    当我将交换放入队列时,我通过转换xml找到了解决方案。这就是为什么?我不知道。

    <route errorHandlerRef="dlc1" id="mobitRoute1">
    
                <from uri="cxf:bean:mobit-okuma?dataFormat=PAYLOAD" />
    
                <wireTap uri="activemq:queue:anaMobitQueue" />
                <to uri="velocity:response.vm" />
    
            </route>
    
            <route errorHandlerRef="dlc1" id="mobitRoute2">
                <from uri="activemq:queue:anaMobitQueue" />
    
                <camel:pipeline>
                    <unmarshal ref="myJaxb" />
                    <to uri="bean:timeChanging" />
                    <!-- <to uri="direct:unmarshalled"/> -->
                    <marshal ref="myJaxb" />
                    <camel:multicast>
    
                        <to uri="activemq:queue:BegisMobit" />
                        <to uri="activemq:queue:AysMobit" />
    
                    </camel:multicast>
                </camel:pipeline>
    
            </route>
    
    
    
            <route errorHandlerRef="dlc2" id="mobitRoute3">
    
                <from uri="activemq:queue:AysMobit" />
                <unmarshal ref="myJaxb" />
                <to uri="bean:fromPayload" />
                <to uri="cxf:bean:ays-service?dataFormat=POJO" />
    
            </route>
    
            <route errorHandlerRef="dlc3" id="mobitRoute4">
    
                <from uri="activemq:queue:BegisMobit" />
                <unmarshal ref="myJaxb" />
                <to uri="cxf:bean:mobit-okumaReal?dataFormat=POJO" />
    
            </route>