Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DefaultMessageListenerContainer,有关要侦听的队列的知识_Java_Spring_Queue_Jms_Spring Jms - Fatal编程技术网

Java DefaultMessageListenerContainer,有关要侦听的队列的知识

Java DefaultMessageListenerContainer,有关要侦听的队列的知识,java,spring,queue,jms,spring-jms,Java,Spring,Queue,Jms,Spring Jms,是否有可能知道onMessage方法中MessageListener正在侦听哪个队列 我的Spring配置(它的一部分): <bean id="abstractMessageListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer" abstract="true"> <property name="connectionFactory" ref="c

是否有可能知道onMessage方法中MessageListener正在侦听哪个队列

我的Spring配置(它的一部分):

<bean id="abstractMessageListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer" abstract="true">
    <property name="connectionFactory" ref="connectionFactory" />
    <property name="maxConcurrentConsumers" value="5"/>
    <property name="receiveTimeout" value="10000" />
</bean>

<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer" parent="abstractMessageListenerContainer">
    <property name="destinationName" value="MY.QUEUE" />
    <property name="messageListener" ref="myMessageListener" />
</bean>

<bean id="myMessageListener" class="my.package.structure.ListenerClass"></bean>
有现成的解决方案吗?或任何自定义解决方案来获取队列/目标名称


在后续批处理中确实需要队列…

简单。在一般情况下,至少:

msg.getJMSDestination()
将以javax.jms.destination对象的形式为您提供目标。通常
.toString()
返回类似于:
queue://MYQUEUENAME


但是,在某些JMS实现中,可能存在多跳队列,例如WebSphere MQ中的静态发布/订阅设置,您可以在其中将消息写入一个队列,然后它将在路由上跳转,以完全不同的队列结束。此外,您可能有一个ESB,中间有逻辑来路由消息。在这种情况下,在大量依赖JMSDestination属性之前,您需要三思。否则,请继续。

@Petter:如果我需要整个DefaultMessageListenerContainer实例,该怎么办?如果可以的话,这里有一个与我的情况相关的链接
public class ListenerClass implements MessageListener {


    public void onMessage(Message msg) {

    //where do I know from, on which queue the message has been written to?

    }

}