如果要在spring integration jms上为消息发布者创建qpid目标。例如,我可以创建如下队列:
<bean id="theTestQueue" class="org.apache.qpid.client.AMQQueue">
<constructor-arg name="address" value="testQueue" />
<property name="create" value="ALWAYS"/>
<property name="node">
<bean class="org.apache.qpid.client.messaging.address.Node">
<constructor-arg name="name" value="testQueue"/>
<property name="durable" value="true"/>
</bean>
</property>
</bean>
之后,我将此队列设置为通道适配器:
<int:channel id="testChannel"/>
<int-jms:outbound-channel-adapter channel="testChannel" destination="theTestQueue" session-transacted="true"/>
如果发布者发送第一条消息,将在消息代理上创建队列。
但是如果我想动态设置队列,我能做什么呢?
<int:channel id="testChannel"/>
<int-jms:outbound-channel-adapter destination-expression="headers.destination" channel="testChannel"/>
发布者看起来像:
@Publisher(channel = "testChannel")
public Message<?> sendMessage (Message<?> message, @Header("destination") String name) {
return message;
}
publisher方法的第二个参数是目标的名称。如果我在发送消息之前在brokerside上创建队列,那么这是可行的。我当前的解决方案是在发布者发送第一条消息之前由jmx mbean创建。但我希望尽可能少地使用jmx连接。是否有机会自动创建队列?或者是没有jmx的工厂。。。
感谢您的帮助。:)
正如您可能注意到的那样,destination属性需要一个bean引用(id
)。从另一方面来看,目标表达式也可以计算为目标对象。
如果你有组织。阿帕奇。qpid。客户AMQQueuebean定义对于所有这些“动态目标”,您只需要改进表达式,从应用程序上下文中获得适当的bean
destination-expression="@beanFactoryAccessor.get(headers.destination)"
其中,beanFactoryAccessor是一个简单的bean,它被注入BeanFactory,通过提供的名称调用它的getBean()。
嗨,我正在使用嵌入式代理Qpid测试Spring集成项目。但问题是我如何在qpid中制作队列和交换。我以为rabbit-config.xml会在qpid代理中制作队列和交换,但无济于事。我的流程是在qpid代理中创建队列和交换,将消息传递给它们,绑定到这些队列的入站amqp适配器将收到消息,我可以继续测试 错误:队列:“推送”。顾客阿科纳。控制器。搜索“未在VirtualHost”default上
我有一个RestHighLevelClient连接到一个远程elasticDB,它位于一个反向代理后面,该代理剥离了ssl。 当我打电话的时候 我得到一个握手失败的例外 正如这里和这里所描述的,我检查了日志,发现了ClientHello 服务员:你好 客户端和服务器都同意密码套件TLS_ECDHE_RSA_和_AES_128_GCM_SHA256 然后以加密和纯文本的形式跟踪请求。然后是另一个Cl
我在域模式下运行Wildfly17。我们一直在手动添加JMS队列,但我宁愿将配置作为部署脚本的一部分添加。我可以使用创建服务器和数据源,但在队列方面似乎没有任何进展。我希望domain_config.xml的结尾如下所示: 我已经研究了如何在Wildfly中使用CLI设置消息传递子系统,但我得到的都是错误。 domain_config.xml的完整嵌套是:
我认为最初的作者认为这将创建一个持久的队列,但显然不是。我找不到这方面的好文档,想知道是否有人能证实/否认这一点。 提前谢了。
问题内容: 背景 我是PHP和前端Web开发人员,使用Netbeans在Java中开发应用程序以从Websphere(我认为是V8.5)JMS队列中进行读取,然后向适当的脚本/服务器发出命令。这是我10年来第一次使用Java进行专业学习,因此请多多包涵。我的初始测试应用程序在托管jms队列的服务器上运行良好,但是当尝试从远程位置进行连接时我遇到了一个接一个的错误(此刻恰好是Windows,但最终将