KafkaException:jdk.internal.loader.ClassLoaders找不到org.apache.kafka.common.security.plain.PlainLoginModule

sab*_*adu 9 apache-kafka spring-boot spring-kafka

Caused by: org.apache.kafka.common.KafkaException: javax.security.auth.login.LoginException: No LoginModule found for org.apache.kafka.common.security.plain.PlainLoginModule
    at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:184)
    at org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:192)
    at org.apache.kafka.common.network.ChannelBuilders.clientChannelBuilder(ChannelBuilders.java:81)
    at org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:105)
    at org.apache.kafka.clients.producer.KafkaProducer.newSender(KafkaProducer.java:447)
    at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:428)
    ... 17 common frames omitted
Caused by: javax.security.auth.login.LoginException: No LoginModule found for org.apache.kafka.common.security.plain.PlainLoginModule
    at java.base/javax.security.auth.login.LoginContext.invoke(LoginContext.java:739)
Run Code Online (Sandbox Code Playgroud)

我正在kafkaTemplate.send异步调用,由使用自定义ThreadPoolTaskExecutor.

  • 春季启动版本:2.6.12
  • Java版本:17
  • io.confluence:kafka-avro-序列化器:7.2.1
  • org.apache.kafka:kafka-clients:3.3.1
  • org.springframework.kafka:spring-kafka:2.9.1

此外,当线程上下文类加载器设置为org.springframework.boot.loader.LaunchedURLClassLoader显式时,这工作正常。

Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader()); 
Run Code Online (Sandbox Code Playgroud)

如果没有这种明确的改变,我怎样才能让它工作?如果有人帮助我解决这个问题,我将不胜感激。TIA