代码之家  ›  专栏  ›  技术社区  ›  Spartan

在Spring Boot app中获取错误“原因:AMQ119031:无法验证用户”

  •  2
  • Spartan  · 技术社区  · 7 年前

    在尝试连接到JBoss EAP 7.1上部署的ActiveMQ Artemis队列时,出现以下错误。

    错误:DefaultMessageListenerContainer:无法刷新JMS 目标“jms/queue/QueueA”的连接-正在使用重试 FixedBackOff{间隔=5000,currentAttempts=139, maxAttempts=无限}。原因:AMQ119031:无法验证用户

    下面是我使用的代码:

    @Bean public DefaultMessageListenerContainer myFactory() throws NamingException { 
       DefaultMessageListenerContainer listenerContainer = new DefaultMessageListenerContainer();
       listenerContainer.setConnectionFactory(getConnectionFactory());
       listenerContainer.setDestinationName("jms/queue/QueueA");
       listenerContainer.setMessageListener(new MessageReceiver());
       return listenerContainer; 
    }
    
    private ConnectionFactory getConnectionFactory() throws NamingException { 
       final Properties env = new Properties();
       env.put(Context.INITIAL_CONTEXT_FACTORY, org.wildfly.naming.client.WildFlyInitialContextFactory); 
       env.put(Context.PROVIDER_URL, "http-remoting://localhost:8080"); 
       env.put(Context.SECURITY_PRINCIPAL, "Username"); 
       env.put(Context.SECURITY_CREDENTIALS, "Password"); 
       InitialContext ic = new InitialContext(env); 
       return (ConnectionFactory) ic.lookup("jms/RemoteConnectionFactory");
    }
    
    1 回复  |  直到 7 年前
        1
  •  4
  •   Justin Bertram    7 年前

    作为错误消息(即。 AMQ119031: Unable to validate user )指示您在创建JMS连接时未提供正确的凭据。

    用户名(&在属性中为JNDI查找提供的密码信息适用 只有 对于JNDI查找(即。 用于JMS连接)。JNDI和JMS是完全独立的。

    您必须使用JMS用户名和密码配置适当的Spring组件,以便在调用 javax.jms.ConnectionFactory.createConnection(String,String) javax.jms.ConnectionFactory.createContext(String,String) 。尝试返回的实例 UserCredentialsConnectionFactoryAdapter 从您的 getConnectionFactory() 方法

    推荐文章