gpt4 book ai didi

configuration - JBoss 与 IBM MQ 的消息驱动 bean 外部配置

转载 作者:行者123 更新时间:2023-12-02 03:43:02 26 4
gpt4 key购买 nike

我正在使用 IBM MQ 消息传递提供程序和 JBoss eap 6.1 环境开发通知服务。我成功地能够通过 MQ JCA 提供程序 rar 发送消息,即 wmq.jmsra.rar 文件。但是在消费者方面,我当前的配置看起来像这样

    @MessageDriven(   
activationConfig = {
@ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"),
@ActivationConfigProperty(propertyName="destination", propertyValue="F2.QUEUE"),
@ActivationConfigProperty(propertyName="providerAdapterJNDI", propertyValue="java:jboss/jms/TopicFactory"),
@ActivationConfigProperty(propertyName="queueManager", propertyValue="TOPIC.MANAGER"),
@ActivationConfigProperty(propertyName="hostName", propertyValue="10.239.217.242"),
@ActivationConfigProperty(propertyName="userName", propertyValue="root"),
@ActivationConfigProperty(propertyName = "channel", propertyValue = "TOPIC.CHANNEL"),
@ActivationConfigProperty(propertyName = "port", propertyValue = "1422")

})

我的问题是该服务的使用者不想在这些 bean 中添加任何端口号、hostName、queueManager 属性。他们也不想使用 ejb-jar.xml 来外部化这些配置。我研究并发现我们可以添加域 IBM Message Driven Bean 但没有成功。关于我在这里可以做什么来外部化所有这些配置有什么建议吗?

编辑:添加 --> JCA 资源适配器部署在消费者端,如果它使它更容易的话。

谢谢

最佳答案

您实际上可以将 MDB 激活规范属性外部化到服务器配置文件。

创建 ejb-jar.xml 文件,但不要将实际值放入文件中,使用属性占位符:

<activation-config-property>
<activation-config-property-name>hostName</activation-config-property-name>
<activation-config-property-value>${wmq.host}</activation-config-property-value>
</activation-config-property>

对所有需要的属性执行此操作。

确保在服务器配置文件中启用 Java EE 规范文件(在本例中为 ejb-jar.xml)的属性替换:

<subsystem xmlns="urn:jboss:domain:ee:1.2">
<spec-descriptor-property-replacement>true</spec-descriptor-property-replacement>

然后,在服务器配置文件中,为您的属性提供值:

<system-properties>
<property name="wmq.host" value="10.0.0.150"/>

打包 MDB 后,您无需更改 MDB jar 中的任何文件 - 只需在服务器配置中提供属性即可。

关于configuration - JBoss 与 IBM MQ 的消息驱动 bean 外部配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18920991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com