0

我正在 Glassfish appserver 上的“EJB3 in Action”(第 2 章示例)中尝试​​一个示例,它有一个 MDB 无法部署并出现错误

JMS resource not created : OrderBillingQueue

我已经按照其他帖子中的建议创建了连接资源和目标资源,但错误仍然存​​在。请帮我解决这个问题。

这是在 glassfish 中创建的 JMS 资源的快照 在此处输入图像描述


在此处输入图像描述

源代码的相关部分:MDB

@MessageDriven(activationConfig = {
        @ActivationConfigProperty(propertyName="destinationName", propertyValue="OrderBillingQueue"),
        @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue")
        },mappedName = "OrderBillingQueue"
)
public class OrderBillingMDB implements MessageListener {

源码相关部分:资源注入部分

@Resource(name = "jms/QueueConnectionFactory")
private ConnectionFactory connectionFactory;

@Resource(name = "jms/OrderBillingQueue", mappedName="OrderBillingQueue")
private Destination billingQueue;
4

1 回答 1

0

添加具有以下内容的 glassfish-ejb-jar.xml 文件似乎可以解决问题。

<glassfish-ejb-jar>
  <enterprise-beans>
      <ejb>
          <ejb-name>OrderBillingMDB</ejb-name>
          <jndi-name>jms/OrderBillingQueue</jndi-name>
      </ejb></enterprise-beans>
</glassfish-ejb-jar>

但不确定为什么 glassfish 需要这个。

于 2013-04-07T12:33:56.387 回答