我们将MDB从IBM web sphere迁移到Jboss 7。我们的消息传递代理是 IBM MQ,我们使用资源适配器进行通信。我们在 Jboss 7 中定义了 JNDI 级别的 jms 连接工厂,我们希望在 EJB 中使用。
我们试图放入 ejb-jar.xml,但它不起作用,还有其他解决方案吗?
<?xml version="1.1" encoding="UTF-8"?>
<jboss:ejb-jar xmlns:jboss="http://www.jboss.com/xml/ns/javaee">
<enterprise-beans>
<message-driven>
<ejb-name>MessageBean</ejb-name>
<ejb-class>com.hi.helloMessageBean</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Container</transaction-type>
<activation-config>
<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-property>
<activation-config-property-name>destination</activation-config-property-name>
<activation-config-property-value>jms/queue_1</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>connectionFactoryJndiName</activation-config-property-name>
<activation-config-property-value>jms/connec_fact_1</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>
useJNDI
</activation-config-property-name>
<activation-config-property-value>
true
</activation-config-property-value>
</activation-config-property>
</activation-config>
</message-driven>
</enterprise-beans>
<assembly-descriptor>
<d:delivery>
<ejb-name>essageBean</ejb-name>
<d:active>true</d:active> <!-- Change to false, to disable MDB delivery. -->
</d:delivery>
<container-transaction>
<method>
<ejb-name>MessageBean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>RequiresNew</trans-attribute>
</container-transaction>
</assembly-descriptor>
</jboss:ejb-jar>
很难知道如何在提供的有限信息下回答您的问题。 如果出现"找不到名称"异常,那么所有 JNDI 名称的格式应为:
java:jboss/jms/queue_1
所有配置文件中的 JNDI 名称应与您在 Web UI 的 JNDI 视图中看到的名称完全匹配。
此外,您最好将useJNDI
设置为 false
,并将destination
名称设置为 IBM MQ 队列名称。 只有少数情况需要在 JBoss 服务器配置文件的资源适配器部分中定义队列。