2011-03-30 138 views
0

当服务器启动时,我可以看到它检查消息,但有时它不会再尝试抓取消息。我不知道它的确切时间,但我知道它甚至没有试图检查,因为我在调试模式下,并没有看到消息命令被执行;排队的消息也不会被消息驱动抓取。为什么我的消息驱动Bean停止处理消息?

这里是我的ejb-jar.xml中:

<?xml version="1.0" encoding="UTF-8"?> 
<ejb-jar id="ejb-jar_ID" 
     version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
          http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"> 
<display-name>MessageEJB</display-name> 
<enterprise-beans> 
    <message-driven> 
    <display-name>MessageBean</display-name> 
    <ejb-name>MessageBean</ejb-name> 
    <ejb-class>com.ecomm.ejb.mdb.MessageBean</ejb-class> 
    <messaging-type>javax.jms.MessageListener</messaging-type> 
    <transaction-type>Container</transaction-type> 
    <message-destination-type>javax.jms.Queue</message-destination-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>/queue/ExpiryQueue</activation-config-property-value> 
    </activation-config-property> 
    </activation-config> 
    </message-driven> 
</enterprise-beans> 

而且jboss.xml中:

<?xml version="1.0"?> 
<jboss> 
<enterprise-beans> 
    <message-driven> 
    <ejb-name>MessageBean</ejb-name> 
    <destination-jndi-name>/queue/ExpiryQueue</destination-jndi-name> 
    <resource-ref> 
    <res-ref-name>MessageBean</res-ref-name> 
    <jndi-name>/queue/ExpiryQueue</jndi-name> 
    </resource-ref> 
    </message-driven> 
</enterprise-beans> 
</jboss> 

和EJB:

/** 
* Message-Driven Bean implementation class for: MeaageBean 
* 
*/ 
@MessageDriven(
    mappedName = "/queue/ExpiryQueue", 
    activationConfig = { 
     @ActivationConfigProperty(
      propertyName = "acknowledgeMode", 
      propertyValue = "Auto-acknowledge" 
     ), 
     @ActivationConfigProperty(
      propertyName = "destinationType", 
      propertyValue = "javax.jms.Queue" 
     ) 
    } 
) 
public class MessageBean implements MessageListener { 

回答

0

Haii,

我我是MessageListener的初学者,但我拥有自己完美的impl ementation ... 我使用JBoss 5.1 HornetQ的 我觉得你已经失踪您的实现 也许这一个注解....:

@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/ExpiryQueue") 

但在这种情况下,我不知道为什么会被有时候会发送一条消息....

我希望这可以帮助U和