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 を用意するため、アプリケーションの展開からすべての構成を移動することを好むからです。

ありがとう!

4

2 に答える 2

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"/>
于 2015-02-15T15:17:34.157 に答える