JMS主题订阅至E 1.7.1

JMS主题订阅至E 1.7.1,jms,activemq,apache-tomee,jms-topic,Jms,Activemq,Apache Tomee,Jms Topic,我正在试验消息驱动bean,以便从外部ActiveMQ实例接收主题订阅消息 我的测试首先从队列订阅开始,它工作得非常好 然后我想尝试主题订阅,但我无法让它工作 这就是我所拥有的: conf/tomee.xml <tomee> <Resource id="MyJmsResourceAdapter" type="ActiveMQResourceAdapter"> BrokerXmlConfig = ServerUrl = tcp://

我正在试验消息驱动bean,以便从外部ActiveMQ实例接收主题订阅消息

我的测试首先从队列订阅开始,它工作得非常好

然后我想尝试主题订阅,但我无法让它工作

这就是我所拥有的:

conf/tomee.xml

<tomee>
    <Resource id="MyJmsResourceAdapter" type="ActiveMQResourceAdapter">
        BrokerXmlConfig  =
        ServerUrl = tcp://192.168.1.176:61616
    </Resource>

    <Resource id="MyJmsConnectionFactory" type="javax.jms.ConnectionFactory">
        ResourceAdapter = MyJmsResourceAdapter
    </Resource>

    <Container id="MyJmsMdbContainer" ctype="MESSAGE">
        ResourceAdapter = MyJmsResourceAdapter
    </Container>

    <Resource id="MyQueue" type="javax.jms.Queue"/>
    <Resource id="MyTopic" type="javax.jms.Topic"/>
</tomee>   
我不知道为什么,但从日志中我可以看到TomEE创建了一个队列而不是一个主题:

Nov 19, 2014 11:17:00 PM org.apache.openejb.config.AutoConfig logAutoCreateResource
INFO: Auto-creating a Resource with id 'MyTopic' of type 'javax.jms.Queue for 'TestMDBTopic'.
这方面的另一个证据是,当我添加持续时间配置时,服务器不会启动:

@ActivationConfigProperty(propertyName = "subscriptionDurability", propertyValue = "Durable")
然后服务器抱怨这不适合配置的javax.jms.Queue类型

我也试着用一种愚蠢的简单邮件方法制作一个主题,这种方法非常有效。 另外,当我从整个配置文件中删除队列配置(MyQueue)时,这并没有什么区别


有人知道我做错了什么吗?

我也有同样的问题。我通过删除@MessageDriven注释中的mappedName属性修复了这个问题。Tomee必须键入mappedName,并假设它表示队列目标。不管怎样,我现在能够向主题发送消息,并且这些消息被听众使用

@ActivationConfigProperty(propertyName = "subscriptionDurability", propertyValue = "Durable")