簡體   English   中英

在 Jboss 7.1.1 中外部化 MDB 配置

[英]Externalizing MDB configurations in Jboss 7.1.1

我使用 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 文件中嗎?

原因是我們將為每個環境(如開發、測試和實時)使用單獨的 standalone.xml,因此更願意將所有配置移出應用程序部署。

謝謝!

外部化配置的最簡單方法是將激活屬性放在 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"/>

不用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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM