spring-boot - 带有Spring Boot和Kafka的Docker内部的Truststore的问题路径

标签 spring-boot docker apache-kafka spring-kafka

我在使用Docker容器部署我的应用程序Spring Boot应用程序时尝试解决技术问题。

org.apache.kafka.common.KafkaException: org.apache.kafka.common.KafkaException: Failed to load SSL keystore /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的位置是Spring的Resource(默认为classpath:),因此它将在类路径中查找文件。引导会检查文件是否存在,因此我看不到它是如何顺利通过引导并传递给Kafka的(除非它也位于类路径中)。如果Boot认为还可以,Kafka也应该这样做。

试试file:/deployments/app/certs/kafka-truststore.jks

关于spring-boot - 带有Spring Boot和Kafka的Docker内部的Truststore的问题路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54928051/

相关文章:

java - Project Lombok + Hibernate 没有实体的默认构造函数

java - 如何在 Spring Boot 应用程序中实现长轮询 REST 端点?

visual-studio - 适用于Windows Beta的Docker +适用于Visual Studio的Docker工具-DockerTask.ps1错误

java - Avro 架构与 Kafka、ClassCastException?

java - 有人能告诉我在我的案例中 spring-data 投影的真正原因吗?

java - Spring boot ObjectMapper Bean 范围是什么?

java - Docker 忽略 mave 使用 .dockerignore 文件创建的目标目录

sql-server - 在 Azure WebApp 中使用 SQL Server 运行 Keycloak 19

java - Spring Kafka、Spring Cloud Stream 和 Avro 兼容性 Unknown magic byte

apache-kafka - Apache Kafka 使用分区扩展主题