【发布时间】:2023-03-23 20:49:01
【问题描述】:
两天前我已经发布了一个关于这个主题的问题,但这个问题要复杂得多。现在,更简单地说:
有没有办法在spring JMS监听器中获取用于连接代理的用户名?我只找到了 MessageListener 和 SessionAwareMessageListener,但我无法从 Session 和 Message 实例中获取此信息(或连接实例)。
我是否遗漏了一些明显的东西?
我正在使用 ActiveMQ 嵌入式代理。
【问题讨论】:
两天前我已经发布了一个关于这个主题的问题,但这个问题要复杂得多。现在,更简单地说:
有没有办法在spring JMS监听器中获取用于连接代理的用户名?我只找到了 MessageListener 和 SessionAwareMessageListener,但我无法从 Session 和 Message 实例中获取此信息(或连接实例)。
我是否遗漏了一些明显的东西?
我正在使用 ActiveMQ 嵌入式代理。
【问题讨论】:
好的,显而易见的答案是,连接侦听器打开与客户端打开的连接不同......因此,获取连接句柄没有任何意义......
愚蠢的我......
PS:我把它留在这里是为了警告后代。
【讨论】:
怎么样?
@JmsListener(destination = "mytopic")
public void processMessage(BytesMessage message) {
ActiveMQBytesMessage msg = (ActiveMQBytesMessage) message;
ActiveMQConnection conn = msg.getConnection();
ConnectionInfo info = conn.getConnectionInfo();
String username = info.getUserName();
}
【讨论】: