admin管理员组

文章数量:1332865

This is the exception I got when I try to send message in my topic on confluent cloud

Caused by: .apache.kafkamon.KafkaException: Failed to create new NetworkClient
    at .apache.kafka.clients.ClientUtils.createNetworkClient(ClientUtils.java:252)
    at .apache.kafka.clients.ClientUtils.createNetworkClient(ClientUtils.java:162)
    at .apache.kafka.clients.producer.KafkaProducer.newSender(KafkaProducer.java:523)
    at .apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:462)
    ... 177 common frames omitted
Caused by: java.lang.IllegalArgumentException: Could not find a 'KafkaClient' entry in the JAAS configuration. System property 'java.security.auth.login.config' is not set
    at .apache.kafkamon.security.JaasContext.defaultContext(JaasContext.java:150)
    at .apache.kafkamon.security.JaasContext.load(JaasContext.java:103)
    at .apache.kafkamon.security.JaasContext.loadClientContext(JaasContext.java:87)
    at .apache.kafkamonwork.ChannelBuilders.create(ChannelBuilders.java:167)
    at .apache.kafkamonwork.ChannelBuilders.clientChannelBuilder(ChannelBuilders.java:81)
    at .apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:119)
    at .apache.kafka.clients.ClientUtils.createNetworkClient(ClientUtils.java:223)
    ... 180 common frames omitted

The problem is that I think I've set up the security normally but I always get this exception when I send a message.

This is how I make my configuration to connect to confluent cloud

spring:
  kafka:
    bootstrap-servers: ${address-server}
    producer:
      key-serializer: .apache.kafkamon.serialization.StringSerializer
      value-serializer: io.confluent.kafka.serializers.KafkaAvroSerializer
      
    properties:
      specific.avro.reader: true
      auto.register.schemas: false
      basic.auth.credentials.source: USER_INFO
      basic.auth.user.info: ${api-key}:${api-key-secret}
      schema:
        registry:
          url: ${address-schema-registry}
      sasl:
        jaas:
          config: .apache.kafkamon.security.plain.PlainLoginModule required username='api-client-id' password='api-client-secret';
        mechanism: PLAIN
      security:
        protocol: SASL_SSL
      ssl:
        endpoint:
          identification:
            algorithm: https

all variables are correct. but when I try to send messag in the topic I got the error

In my configuration class I have these methods for handling my producer

  @Bean
    public ProducerFactory<String, SpecificRecordBase> producerFactory() {
        return new DefaultKafkaProducerFactory<>(producerConfig());
    }
 @Bean
    public Map<String, Object> producerConfig() {
        Map<String, Object> configProps = new HashMap<>();
        configProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
        configProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, io.confluent.kafka.serializers.KafkaAvroSerializer.class);
        configProps.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, kafkaSecurityProtocol);
        configProps.put("schema.registry.url", schemaRegistryUrl);
        return configProps;
    }

The KafkaTemplate

@Bean
    public KafkaTemplate<String, SpecificRecordBase> kafkaTemplate(CustomProducerListener<String, SpecificRecordBase> listener) {
        KafkaTemplate<String, SpecificRecordBase> kafkaTemplate = new KafkaTemplate<>(producerFactory());
        kafkaTemplate.setProducerListener(listener);
        return kafkaTemplate;
    }

本文标签: javaHow to fix Could not find a 39KafkaClient39 entry in the JAAS configurationStack Overflow