我正在尝试使用部署描述符完全定义我的消息驱动bean,因为我正在将我的应用程序部署到Websphere,并且它不能很好地处理注释。
我想知道是否有一种方法可以在ejb-jar.xml文件中指定MDB的消息监听器接口?
答案 0 :(得分:2)
您必须使用@javax.ejb.MessageDriven
注释将EJB类型声明为消息驱动的。您可以指定以下可选属性:
bean类必须直接或间接地实现它支持的消息传递类型或消息侦听器接口的方法所需的消息侦听器接口。对于JMS,这是javax.jms.MessageListener接口。
激活配置属性是在部署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>