首页 > 解决方案 > 无法从另一个 docker 容器连接 ActiveMQ docker 容器

问题描述

version: '3.9'
services:
activemq:
image: rmohr/activemq:5.15.9-alpine
restart: always
ports:
  - 61616:61616
  - 8161:8161
  - 5672:5672
container_name: activemq


app-service:
image: app-service:v1
restart: always
ports:
  - 8080:8080
container_name: app-service
links:
  - activemq
depends_on:
  - activemq

在我的应用服务中,我使用 Spring Bootspring.activemq.broker-url=tcp://activemq:61616以及用户名和密码配置了 ActiveMQ 代理 URL。

当我尝试运行docker-compose up显示以下错误的应用服务时

DefaultMessageListenerContainer  : Could not refresh JMS Connection for   
destination 'queueName' - retrying using FixedBackOff{interval=5000,   
currentAttempts=5, maxAttempts=unlimited}. Cause:   Java.lang.NullPointerException.

我可以在浏览器上访问 ActiveMQ Web 控制台(例如使用http://localhost:8161)。

如果没有 docker 容器,相同的代码在 localhost 中运行良好。

标签: spring-bootdockeractivemq

解决方案


是的,最大的原因是您的应用程序在 activemq 服务之前运行。您可以尝试 docker-compose up 并在终端中查看控制台登录。

已修复:这还不是一个好主意,但是您可以转到 docker 应用程序并使用您的应用程序容器的名称单击重新启动,然后一切都会正常工作。


推荐阅读