在Spring JMS侦听器中获取用户名

时间:2013-02-11 20:05:48

标签: java spring jms activemq

我已经在两天前就这个话题发了一个问题,但这个问题要复杂得多。现在,更简单地说:

有没有办法在Spring JMS监听器中获取用于连接代理的用户名?我只找到了MessageListener和SessionAwareMessageListener,但是我无法从Session和Message实例中获取此信息(或Connection instnace)。

我错过了一些明显的东西吗?

我正在使用ActiveMQ嵌入式代理。

2 个答案:

答案 0 :(得分:2)

好的,显而易见的答案是,连接监听器打开与客户端打开的连接不一样...因此,没有获取连接句柄的点...

愚蠢的我......

PS:我要把它留在这里警告后代。

答案 1 :(得分:0)

怎么样?

@JmsListener(destination = "mytopic")
public void processMessage(BytesMessage message) {
    ActiveMQBytesMessage msg = (ActiveMQBytesMessage) message;
    ActiveMQConnection conn = msg.getConnection();
    ConnectionInfo info = conn.getConnectionInfo();
    String username = info.getUserName();
}