java - Camel 响应从 bean 返回到 ActiveMQ 队列

标签 java spring apache-camel activemq

我正在使用Camel(带有camel-ejb依赖项)将消息从ActiveMQ路由到我的bean的方法。到目前为止,我已经在 requestHandler bean 中接收了消息。

<amq:connectionFactory id="amqConnectionFactory"
    brokerURL="tcp://localhost:61616" />

<bean class="org.springframework.jms.connection.CachingConnectionFactory"
    id="connectionFactory">
    <constructor-arg ref="amqConnectionFactory" />
    <property name="sessionCacheSize" value="100" />
</bean>

<bean class="org.springframework.jms.core.JmsTemplate" id="jmsTemplate">
    <constructor-arg ref="connectionFactory" />
</bean>

<camel:camelContext id="camelContext">
    <camel:route>
        <camel:from uri="activemq:queue:inQueue" />
        <camel:setExchangePattern pattern="InOut"/>
        <camel:to uri="bean:requestHandler?method=handleRequest" />
    </camel:route>
</camel:camelContext>

如果我现在更改handleRequest以返回字符串,我将如何修改我的路由以将队列上的字符串返回给向我发送消息的人?

谢谢!

编辑:

客户端代码:

(在camel-context.xml中)

<camel:camelContext id="camel-client">
    <camel:template id="camelTemplate" />
</camel:camelContext>

<bean id="jms" class="org.apache.activemq.camel.component.ActiveMQComponent">
    <property name="brokerURL" value="tcp://localhost:61616" />
</bean>

(在 CamelClient.java 中)

public class CamelClient  {
    public static void main(String[] args) {

        ApplicationContext context = new ClassPathXmlApplicationContext("camel-context.xml");
        ProducerTemplate pTemplate = context.getBean("camelTemplate", ProducerTemplate.class);

        System.out.println("Message Sending started");
        String ret = pTemplate.requestBody("activemq:queue:inQueue", "47264", String.class);
        System.out.println("Message received:" + ret);
    }
}

最佳答案

并尝试在 route 添加日志步骤

<camel:route>
    <camel:from uri="activemq:queue:inQueue" />
    <camel:setExchangePattern pattern="InOut"/>
    <camel:to uri="bean:requestHandler?method=handleRequest" />
    <camel:to uri="log:reply" />
</camel:route>

并且还向我们展示您的 requestHandler bean 的代码,它的用途,可以让我们更好地帮助您。

关于java - Camel 响应从 bean 返回到 ActiveMQ 队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22296285/

相关文章:

java - 创建名称为 'sessionFactory' 的 bean 时出错

java - 使用 Apache Camel 进行端点注入(inject)

java - 如何定义到 InfluxDB 的 Apache Camel 路由

java - Camel - CamelContext - RabbitMQ 组件 - ExchangeName 的值应该是多少?

java - 什么时候应该创建 fragment View 模型?

java - 如何用eclipse分析MAT

java - 计算 Java 类的代码行数

java - 单击树节点时如何打开新的 div

java - JSR303 自定义 validator 被调用两次

java - 解析 JSON 的简单 Spring 代码