TomEE MDB消息驱动Bean

时间:2017-01-27 14:46:54

标签: java glassfish jms tomee message-driven-bean

是否可以在MDB(消息驱动Bean)中为“目标”动态分配运行时值?

基于注释的方法强制在MDB上对其进行硬编码

@MessageDriven(name="PingPongMDB", activationConfig = {
    @ActivationConfigProperty(
            propertyName = "destinationType", 
            propertyValue = "javax.jms.Queue"),
         @ActivationConfigProperty(
            propertyName = "destination", 
            propertyValue = "ref_fooQueue")})
public class PingPongMDB implements MessageListener {

我也尝试过ejb-jar.xml方法,但“activation-config-property-name”=“destination”的值被读作队列的文字物理名称。 因此,我无法对资源进行JNDI查找。

<message-driven>

  <ejb-name>PingPongMDB</ejb-name>
  <ejb-class>com.company.sample.services.PingPongMDB</ejb-class>

  <messaging-type>javax.jms.MessageListener</messaging-type>

  <activation-config>
    <activation-config-property>
      <activation-config-property-name>destination</activation-config-property-name>
      <activation-config-property-value>openejb:Resource/ref_fooQueue</activation-config-property-value>
    </activation-config-property>
    <activation-config-property>
      <activation-config-property-name>destinationType</activation-config-property-name>
      <activation-config-property-value>javax.jms.Queue</activation-config-property-value>
    </activation-config-property>
  </activation-config>

</message-driven>

从属性读取和分配目的地或使用-D params传递值的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

如果有人遇到它,就会在http://tomee-openejb.979440.n4.nabble.com/TomEE-override-parameterize-ActivationConfigProperty-td4680969.html

上解决

故事简介:使用上一版本可以使用占位符