我使用Jboss作为7.1.1,我有我的EJB MDB注释,如下所示:
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "XXX.IN"),
@ActivationConfigProperty(propertyName = "useJNDI", propertyValue = "false"),
@ActivationConfigProperty(propertyName = "hostName", propertyValue = "XXX.com"),
@ActivationConfigProperty(propertyName = "port", propertyValue = "3434"),
@ActivationConfigProperty(propertyName = "queueManager", propertyValue = "A01"),
@ActivationConfigProperty(propertyName = "channel", propertyValue = "CLIENT.TO") }, name = "MQMDB")
public class MyMessageListener implements MessageListener {
...
}
我知道它可以移动到ejb-jar.xml但是我可以将这个配置从代码移到jboss standalone.xml文件中吗?
原因是我们将为dev,test和live等每个环境提供单独的standalone.xml,因此更愿意将所有配置移出应用程序部署。
谢谢!
答案 0 :(得分:0)
外部化配置的最简单方法是将激活属性放在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}
根据需要为要替换的值添加属性。
然后,在standalone.xml中,确保启用规范替换:
<subsystem xmlns="urn:jboss:domain:ee:1.2">
<spec-descriptor-property-replacement>true</spec-descriptor-property-replacement>
<jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement>
<annotation-property-replacement>false</annotation-property-replacement>
</subsystem>
最后,将您的属性添加到standalone.xml文件中:
<system-properties>
<property name="wmq.host" value="10.0.0.150"/>
<property name="wmq.port" value="1414"/>
<property name="wmq.queue.manager" value="MY.QUEUE.MANAGER"/>
答案 1 :(得分:0)
您可以在没有ejb-jar.xml的情况下进行操作, 添加
<annotation-property-replacement>true</annotation-property-replacement>
在
<subsystem xmlns="urn:jboss:domain:ee:4.0">
以及您的mdb类设置属性,如下所示
@ActivationConfigProperty(propertyName = "hostName", propertyValue = "${hostName}")
在standalone.xml中定义系统属性
<system-properties>
<property name="hostName" value="1.1.1.1"/>
</system-properties>