spring-boot - 带有spring boot和kafka的docker内部信任库的问题路径
问题描述
在使用 docker 容器部署我的应用程序 spring boot 应用程序时,我尝试解决技术问题。
org.apache.kafka.common.KafkaException: org.apache.kafka.common.KafkaException: 无法加载 SSL 密钥库 /tmp/tomcat-docbase.4737956707529585395.8080/deployments/app/certs/kafka.truststore.jks
/deployments 是我在 dockerfile 中配置的工作目录
我发现它选择 tmp/tomcat docbase 很奇怪,因为在为其他信任库配置时它进入了正确的位置。这是我的 application.yaml 里面的内容
spring:
kafka:
bootstrap-servers:localhost:9092
ssl:
truststore-location: /deployments/app/certs/kafka-truststore.jks
truststore-password: test
consumer:
group-id: consumerid
server:
ssl:
enabled: false
key-store: /deployments/app/certs/dp--dev.jks
key-store-password: changeit
trust-store: /deployments/app/certs/ol-truststore-dev.jks
trust-store-password: test
它是我遗漏的东西还是与我正在使用的 kafka springframework lib 有关?
解决方案
truststore-location 是 Spring Resource
(classpath:
默认情况下),因此它会在类路径中查找文件。引导检查文件是否存在,所以我看不到它是如何顺利通过引导并传递给 Kafka(除非它也在类路径上)。如果 Boot 认为没问题,Kafka 也应该这样。
尝试file:/deployments/app/certs/kafka-truststore.jks
推荐阅读
- javascript - 使用 AJAX 从自定义页面上的按钮中删除所有购物车项目
- python - 在python中按模数四舍五入
- excel - 当单元格值条件失败 VBA 时更改字体颜色
- xsd-validation - xsd 如何在元素中包含 targetNamespace
- c# - 多任务继续 - 等到全部完成
- java - 如何将令牌设置为 Java 中获取请求的 HTTPHeader?
- javascript - 用javascript创建的尖贝塞尔曲线
- javascript - 更改 java 脚本锚滚动以查找数组对象
- r - 用向量中的下划线替换两个单词之间的空格
- javascript - AngularError Observable