0

Apache Camel 2.11.1 を使用しています。Camel では、両方の xml 定義が同等ではないようです。

最初の定義:

<bean id="amq" class="org.apache.activemq.camel.component.ActiveMQComponent"
    p:brokerURL="tcp://localhost:61616" p:transacted="true"
    p:cacheLevelName="CACHE_CONSUMER" p:concurrentConsumers="20"
    p:maxConcurrentConsumers="500" p:idleConsumerLimit="10" />

2 番目の定義:

<bean id="amq" class="org.apache.camel.component.jms.JmsComponent"
    p:configuration-ref="jmsConfig" p:transacted="true" p:cacheLevelName="CACHE_CONSUMER" />

<bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration"
    p:connectionFactory-ref="nakedConnectionFactory"
    p:concurrentConsumers="20" p:maxConcurrentConsumers="500"
    p:idleConsumerLimit="10" />

<bean id="nakedConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"
    p:brokerURL="tcp://localhost:61616" />

最初の定義は次のルートでうまく機能しますが、2 番目の定義は機能しません。

<route>
    <from uri="amq:example.MyQueue" />
    <setHeader headerName="myRoutingSlipHeader">
        <constant>amq:one#amq:two#amq:three#amq:four</constant>
    </setHeader>
    <log message="Makan" />
    <setExchangePattern pattern="InOut" />
    <routingSlip uriDelimiter="#">
        <header>myRoutingSlipHeader</header>
    </routingSlip>
    <setExchangePattern pattern="InOnly" />
    <log message="End: ${body}" />
</route>

<route>
    <from uri="amq:one" />
    <to uri="bean:helloBean?method=stepOne" />
</route>

<route>
    <from uri="amq:two" />
    <to uri="bean:helloBean?method=stepTwo" />
</route>

<route>
    <from uri="amq:three" />
    <to uri="bean:helloBean?method=stepThree" />
</route>

<route>
    <from uri="amq:four" />
    <to uri="bean:helloBean?method=stepFour" />
</route>

2 番目のコンポーネント定義により、実行中にハングが発生します。

4

1 に答える 1

0

私にとってはうまくいくようです。作成したアーキタイプで春のバージョンをオーバーライドする必要がありました。しかし、私はこれを使用しましたが、うまくいきました。

ここでサンプル プロジェクトを見つけてください: https://github.com/jimternet/camel-activemq

<broker xmlns="http://activemq.apache.org/schema/core" useJmx="true"
    persistent="false">
    <transportConnectors>
        <transportConnector uri="tcp://localhost:61616" />
    </transportConnectors>
</broker>

<camelContext xmlns="http://camel.apache.org/schema/spring">
    <route>
        <from uri="file:src/data?noop=true" />
        <to uri="activemq:personnel.records" />
    </route>
    <route>
        <from uri="activemq:personnel.records" />
        <log message="${body}" />

        <choice>
            <when>
                <xpath>/person/city = 'London'</xpath>
                <to uri="file:target/messages/uk" />
            </when>
            <otherwise>
                <to uri="file:target/messages/others" />
            </otherwise>
        </choice>
    </route>
</camelContext>


<bean id="activemq" class="org.apache.camel.component.jms.JmsComponent"
    p:configuration-ref="jmsConfig" p:transacted="true" p:cacheLevelName="CACHE_CONSUMER" />

<bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration"
    p:connectionFactory-ref="nakedConnectionFactory"
    p:concurrentConsumers="20" p:maxConcurrentConsumers="500"
    p:idleConsumerLimit="10" />

<bean id="nakedConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"
    p:brokerURL="tcp://localhost:61616" />

于 2013-10-09T02:28:45.857 に答える