Configuration IBM MQ JBoss的消息驱动bean外部配置

Configuration IBM MQ JBoss的消息驱动bean外部配置,configuration,jms,ibm-mq,message-driven-bean,Configuration,Jms,Ibm Mq,Message Driven Bean,我正在使用IBM MQ消息传递提供程序和JBoss eap 6.1环境开发通知服务。我能够通过MQ JCA提供程序rar(即wmq.jmsra.rar文件)成功发送消息。但是在消费者方面,我当前的配置如下所示 @MessageDriven( activationConfig = { @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms

我正在使用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中添加任何端口号、主机名、队列管理器属性。此外,他们不想使用ejb-jar.xml将这些配置外部化。我研究发现,我们可以添加一个域IBM消息驱动Bean,但没有成功。关于我可以在这里做些什么来外部化所有这些配置,有什么建议吗

编辑:添加-->JCA资源适配器将部署在使用者端(如果这样做更方便的话)


谢谢

您可以避免在MDB中添加主机名、端口号等,您只需要在MDB中定义destinationType,以及您可以在应用程序服务器中配置的其他内容,如激活规范、队列和队列连接工厂。
我也做了同样的事情,但我使用了IBM Websphere Application Server。

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

创建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>

主机名
${wmq.host}
对所有所需的属性执行此操作

确保在服务器配置文件中启用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中的任何文件—只需在服务器配置中提供属性。

注意,当您尝试将MDB用作标记时,它会转换为ms access。我根据我认为你想要的内容编辑了标签。谢谢Hans整理。非常感谢