指定MDB的消息侦听器接口

时间:2014-03-06 06:49:28

标签: java websphere ibm-mq message-driven-bean

我正在尝试使用部署描述符完全定义我的消息驱动bean,因为我正在将我的应用程序部署到Websphere,并且它不能很好地处理注释。

我想知道是否有一种方法可以在ejb-jar.xml文件中指定MDB的消息监听器接口?

1 个答案:

答案 0 :(得分:2)

您必须使用@javax.ejb.MessageDriven注释将EJB类型声明为消息驱动的。您可以指定以下可选属性:

  1. messageListenerInterface - 指定消息侦听器接口(如果尚未显式实现它或bean实现其他接口)。
  2. bean类必须直接或间接地实现它支持的消息传递类型或消息侦听器接口的方法所需的消息侦听器接口。对于JMS,这是javax.jms.MessageListener接口。

    1. activationConfig - 指定在其操作环境中配置Bean的激活配置属性数组。
    2. 激活配置属性是在部署MDB时传递给MDB容器的名称 - 值对。可以在ejb-jar.xml部署描述符中声明属性,也可以在MDB bean类上使用@ActivationConfigProperty注释声明属性。

      激活配置属性在ejb-jar.xml中设置

      <message-driven>
            . . .
            <activation-config>
              <activation-config-property>
                  <activation-config-property-name>destinationJNDIName</activation-config-property-name>
                  <activation-config-property-value>myQueue</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>
          <message-driven>
            . . .
            <activation-config>
              <activation-config-property>
                  <activation-config-property-name>destinationJNDIName</activation-config-property-name>
                  <activation-config-property-value>myQueue</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>