Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 mvc SpringAsyncServlet与ActiveMQ、Camel和Jetty_Spring Mvc_Jetty_Activemq_Apache Camel - Fatal编程技术网

Spring mvc SpringAsyncServlet与ActiveMQ、Camel和Jetty

Spring mvc SpringAsyncServlet与ActiveMQ、Camel和Jetty,spring-mvc,jetty,activemq,apache-camel,Spring Mvc,Jetty,Activemq,Apache Camel,我正在尝试使用Camel和ActiveMQ。我正在使用以下版本 <spring.version>3.2.0.M1</spring.version> <camel.version>2.10.0</camel.version> <jetty.version>8.1.3.v20120416</jetty.version> <activemq.version>5.6.0</activ

我正在尝试使用Camel和ActiveMQ。我正在使用以下版本

    <spring.version>3.2.0.M1</spring.version>
    <camel.version>2.10.0</camel.version>
    <jetty.version>8.1.3.v20120416</jetty.version>
    <activemq.version>5.6.0</activemq.version>
在基于的Spring/Camel配置中,我有以下内容


使用上面的配置,我能够将消息输入到队列中(至少我没有收到任何错误)。但是,我不知道如何从这个队列中读取消息

  • 在使用Spring、Camel和Jetty时,这是配置ActiveMQ的正确方法吗
  • 如何添加/注册MessageListener
    javax.jms.MessageListener
    ,以便从队列中读取数据
  • 如何控制队列大小并使队列非持久化
  • 可以添加多个侦听器吗

  • 谢谢

    您的配置适合activemq。对码头一无所知。您提供的代码段中没有jetty配置

    在camel路由中,您可以简单地使用fromActiveMQ端点侦听队列

    从(“activemq:myqueue”)。到(“log:test”)

    顺便说一句,我通常使用jms-ednpoint而不是ActiveMQ。这样做的好处是,如果必须在某个时刻切换到另一个jms提供程序,则更容易切换

    您还可以在bean中使用connectionfactory和您自己的DefaultMessageListenerContainer。请参阅spring配置以了解如何执行此操作,但这与camel无关

    您可以在activemq配置中控制队列大小。使用

    您不能使队列不持久,但可以将发送的消息定义为非持久

    您可以定义多个侦听器,甚至可以使用上面from端点上的maxConcurrentConsumers选项定义一个侦听器的线程数

    from("mina:udp://source_machine:9998").to("activemq:myqueue");
    
        <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL" value="vm://localhost:61616" />
    </bean>
    
    <bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
        <property name="maxConnections" value="8" />
        <property name="maximumActive" value="500" />
        <property name="connectionFactory" ref="jmsConnectionFactory" />
    </bean>
    
    <bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration">
        <property name="connectionFactory" ref="pooledConnectionFactory" />
        <property name="transacted" value="false" />
        <property name="concurrentConsumers" value="10" />
    </bean>
    
    <bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
        <property name="configuration" ref="jmsConfig" />
    </bean>