spring-boot - 无法从另一个 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 中运行良好。
解决方案
是的,最大的原因是您的应用程序在 activemq 服务之前运行。您可以尝试 docker-compose up 并在终端中查看控制台登录。
已修复:这还不是一个好主意,但是您可以转到 docker 应用程序并使用您的应用程序容器的名称单击重新启动,然后一切都会正常工作。
推荐阅读
- python - Pyspark Dataframe - 没有 Numpy 或其他库的中位数
- c++ - C++ 链接错误,我了解但无法解决
- r - ggplot2 错误:提供给连续刻度的离散值
- swift - 如何使用渐变制作 UIButton 背景图像(Swift)
- ssl - 如何生成证书签名请求 (CSR) 以在 GKE 中设置 TLS
- r - 具有滞后项的两列之和
- python - 将目录中的文件名与 Pandas 系列匹配,删除不匹配的文件
- java - 使用时间 API 获取下个月的特定日期
- sql - 选择值变为 0 的最后日期的 SQL 查询
- r - 身份验证错误 - googlesheet 包 - R