- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
再见,我的基本要求是有一个可以发送消息的路由,并将其放在 JMS 队列中。 camel 上下文在 JavaEE 6 容器中运行,即 JBoss AS 7.1.1,因此它是 HornetQ for JMS 随附的;我通过 bootstrap 单例启动上下文,但我不使用 camel-cdi。到目前为止,我一直在使用 camel-jms
组件,但现在我希望尽可能迁移到 camel-sjms
,因为没有 Spring 。
我的问题是:在这种 JavaEE 场景中,正确为 camel-sjms
配置 ConnectionFactory 的方法是什么?
使用 camel-jms,我可以将它放在端点 URL 中,就像 .to("jms:myQueue?connectionFactory=#ConnectionFactory")
一样简单。而使用 camel-sjms 在我看来我需要自己创建一个 SJMSComponent 的实例,设置 connectionFactory,并在启动它之前在 camel 上下文中设置这个实例。
我在下面有 camel-jms 与 camel-sjms 案例的代码,我想知道我是否正确“迁移”了 ConnectionFactory 的设置。谢谢。
camel-jms
,这是按以下方式完成的:
@Singleton
@Startup
public class CamelBootstrap {
private CamelContext camelContext;
private ProducerTemplate producerTemplate;
public CamelContext getCamelContext() {
return camelContext;
}
public ProducerTemplate getProducerTemplate() {
return producerTemplate;
}
@PostConstruct
public void init() throws Exception {
camelContext = new DefaultCamelContext();
camelContext.addRoutes(new MyCamelRoutes());
camelContext.start();
producerTemplate = camelContext.createProducerTemplate();
}
}
没什么特别的,在 MyCamelRoutes
中,我可以使用以下方法进行路由配置:
.to("jms:myQueue?connectionFactory=#ConnectionFactory")
camel-sjms
,现在我必须修改 bootstrap 单例:
@Singleton
@Startup
public class CamelBootstrap {
@Resource(mappedName="java:/ConnectionFactory")
private ConnectionFactory connectionFactory;
private CamelContext camelContext;
private ProducerTemplate producerTemplate;
public CamelContext getCamelContext() {
return camelContext;
}
public ProducerTemplate getProducerTemplate() {
return producerTemplate;
}
@PostConstruct
public void init() throws Exception {
camelContext = new DefaultCamelContext();
SjmsComponent sjms = new SjmsComponent();
sjms.setConnectionFactory(connectionFactory);
camelContext.addComponent("sjms", sjms);
camelContext.addRoutes(new MyCamelRoutes());
camelContext.start();
producerTemplate = camelContext.createProducerTemplate();
}
}
请注意connectionFactory 的@Resource
这是作为对SjmsComponent 实例的引用传递的,该实例传递给camelContext。然后在 MyCamelRoutes
中,我可以在使用 sjms 进行路由配置时使用:
.to("sjms:myQueue")
camel-sjms
正确适用于我的 JavaEE 场景。再次感谢
最佳答案
如果您不对 JMS 资源进行缓存/池化,则可能会发生性能问题。缓存通常通过将 ConnectionFactory 包装在某些 Caching ConnectionFactory 库中进行配置 - 或者将控制权移交给应用程序服务器。
Camel SJMS 包含内置池。但是,如果您有一个容器管理的资源来处理 JMS 连接,您应该考虑使用它。 SJMS 有一些设施来处理这个问题,ConncetionResource instead of ConnectionFactory .
关于jms - 为 Camel JMS 生产者设置 ConnectionFactory : camel-jms Vs camel-sjms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25217846/
我安装了一个全新的 WSO2 ESB 4.2.3 版(到目前为止是最稳定的版本),并且我在 axis2.xml 文件中配置了 JMS 传输,如下所示: org.j
我有一个包含两个 ConnectionFactory(不同代理)的应用程序。它们配置有 java 类: @Bean public ConnectionFactory ... @
使用 JBoss 4.0.5、JBossMQ 和 Spring 2.0.8,我试图将 Spring 配置为实例化依赖于远程 JMS 队列资源的 bean。我遇到的所有示例都依赖于使用 JNDI 来查找
我正在 Pearl 9100 中测试一个应用程序。我的应用程序使用 ConnectionFactory 来获取可用连接并执行 HTTP 请求。 我正在像这样设置 ConnectionFactory p
我正在使用 Camel 在 RabbitMQ 中使用和生成消息。另外,我正在使用 Spring boot,所以我创建了一个 ConnectionFactory具有我想要的所有配置的 bean。 效果很
首先,我想为这里的一些杂乱无章的文章道歉。我正在编写一个 spring boot 应用程序来从 MQ 队列中读取消息。但是在尝试创建 MQXAConnectionFactory 对象的实例时出现异常。
我有一个应用程序,它充当服务器并定期将问题/答案推送到 JMS 队列,这部分工作正常。 我想做的是在专用应用程序中使用发送到此队列的消息,但是当我尝试访问 ConnectionFactory 时,当我
我的问题是关于以下两个工厂的使用: 连接工厂 队列连接工厂 目前我只使用ConnectionFactory 来初始化所有内容: Connection conn = factory.createConn
我的理解是: MDBs(消息驱动 Bean)通过激活规范连接。 MDPs(消息驱动 POJO)通过连接工厂连接。 此图from IBM很有帮助: 对我来说,this explanation from
我有一个 connectionFactory 的 spring-bean 到 hornetQ: 并且,这个 bean 正在
在我的应用程序中,我使用 Hibernate 和 mysql 连接到数据库。只要有来自 GUI 的请求,此应用程序就会连接到数据库。在尝试再次连接到数据库后,如果长时间没有来自 GUI 的请求。我收到
我正在使用 WebLogic Server:12.1.1.0、Spring 3.2.11.RELEASE 和 Camel 2.13.4。 我的 WebLogic 上有一个 ConnectionFact
这是我在这个论坛上的第一个问题..:) 请帮助我了解如何在 JBossAS5 上配置 JMS ConnectionFactory ..我创建了一个简单的 MDB 应用程序: @MessageDrive
我正在尝试从 java 应用程序将消息放入 jms 队列 (weblogic) 中。 InitialContext ctx = getInitialContext(); qconFactory = (
我正在使用 Jmeter 的 JMS 点对点采样器来测试将大量 JMS 消息发布到队列时的性能。 Jmeter 目前为每个线程(根据提供的线程数)创建一个新的QueueConnectionFactor
我正在覆盖 Spring Social Twitter 和 Facebook 的默认 Spring Boot 配置。运行应用程序时出现以下错误。 org.springframework.beans.
因此 Tapestry 有其默认的 DatabaseServiceProvider.php,其中包含以下代码。 $this->app->singleton('db.factory', function
我已经通过 JNDI 设置了一个 JMSTemplate,如下所示:
我正在玩 Spring Boot 入门指南,但自动配置失败,我得到: java.lang.ClassNotFoundException: javax.jms.ConnectionFactory 似乎
我正在考虑使用 HornetQ 作为消息传递提供程序。我想知道什么连接工厂适合什么行为/解决方案? 最佳答案 connectionfactory 是基础工厂。具体来说,javax.jms.Connec
我是一名优秀的程序员,十分优秀!