当前位置: 首页 > 知识库问答 >
问题:

在驼峰路由上使用自定义JMS侦听器的“containerFactory”

沙靖琪
2023-03-14

我想使用骆驼路由接收消息,但能够以某种方式注入自定义“容器工厂”。

通常(没有骆驼路线),你会做以下事情:

@JmsListener(destination = "${some.virtual-topic.queue}", 
containerFactory = "customJmsListenerContainerFactory")
public void receiveMessage(String message) throws Exception {
  // do something cool with the received message ...
}

注意上面“JmsListener”注释的“containerFactory”属性如何为我们提供了一种使用非默认“containerFactory”的方法。这很好,但是如果我们想使用骆驼路径从队列中读取呢?类似于:

@Component
public class TestRoute extends RouteBuilder  {
    
    @Override
    public void configure() throws Exception {
        from("activemq:queue:{{some.virtual-topic.queue}}")
            .bean(MessageFacade.class, "process");
    } 
}

在上面的最新案例中,我无法“注入”自定义JMS containerFactory。有谁知道这是否可能(以非黑客的方式)?否则,我们将不得不依赖标准的听者。

共有1个答案

韦飞尘
2023-03-14

请参阅文档:https://camel.apache.org/components/latest/activemq-component.html

选项consumerType应该设置为Custom,messageListenerContainerFactory应该引用容器工厂实现的bean id。

 类似资料:
  • 关于ApacheCamel的简短问题。我有以下场景,其中我的服务器接收jms消息,然后转换为csv文件,然后插入DB。为此,我有两个bean: xml2csv 我使用路由像: 当"路由"一个文件从-到,它是移动像一个消息?或者把问题放在不同的地方,ApacheCamel是否获取一个文件,将其包装为消息,并将其路由到bean或组件? 我的理解是正确的还是错误的。

  • 抱歉问了个幼稚的问题,从夸克开始。因为我读到夸克已经支持骆驼,是否可以创建一个JMS路由来向JMS队列发送消息? 我还有一些使用数据库bean映射处理程序(apache公共数据库)的遗留服务。如果我把它们作为夸克的一部分,它们仍然可以部署在GraalVM上吗?

  • 我需要定义一个从主题读取消息(包含xml)并将其解组到JavaBean的路由。 早些时候,我使用Spring JmsTemboard来管理这个主题的连接工厂,我的路由看起来像这样(并且工作正常)。消息转换器本质上返回方法中的实例 现在,我使用org.springframework.jms.listener.DefaultMessageListenerContainer来连接到这个持久的主题,而不是

  • 我试图通过驼峰路由将消息放到Weblogic JMS中的队列中。 我的目标是最终配置一个Route以使用来自jms队列的消息,我将早期Route的数据发布到该队列。 这是我的配置: 我的路线如下所示: 我尝试执行此路由时遇到此异常: 我按照以下过程创建了此处提到的队列:https://blogs.oracle.com/soaproactive/entry/how_to_create_a_simpl

  • 我们有一个JMS监听器,它从MQ中提取消息并将它们保存在数据库中。我的问题是在db关闭时暂时暂停JMS侦听器并在一段时间后再次恢复它的最佳方法是什么。 我的想法是在db操作周围使用Spring断路器来监视它的健康状况并回退到错误处理程序方法。这将有助于避免每次都等待db超时。然而,监听器仍然在拉取消息并试图保存它们,这浪费了CPU和网络。 有没有办法处理断路器命令事件,如:开/半开/关?然后我可以

  • 我创建了一个路由器类,并在@Configuration中标记为@Bean。有一件事我不太确定,那就是camel会多久调用一次数据库以获取select结果?一旦我在数据库中有了一个新条目,camel就会检索并处理它。