两天前我已经发布了一个关于这个主题的问题,但这是一个更复杂的问题。现在,更简单地说:
有没有办法在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();
}