У меня проблема с регистрацией SLF4J на Apache Kafka.Я хочу использовать Tomcats Servlet Container Catalina в связи с Apache Kafka.Мое Java-приложение должно быть интегрировано в процесс BPM от Camunda.Интеграция Java-кодирования работала до сих пор - без интеграции с Apache Kafka Producer.Если я интегрирую это в процесс Camunda, я получу эту ошибку:
java.lang.LinkageError: loader constraint violation: when resolving method "org.slf4j.impl.StaticLoggerBinder.getLoggerFactory()Lorg/slf4j/ILoggerFactory;" the class loader (instance of org/apache/catalina/loader/ParallelWebappClassLoader) of the current class, org/slf4j/LoggerFactory, and the class loader (instance of java/net/URLClassLoader) for the method's defining class, org/slf4j/impl/StaticLoggerBinder, have different Class objects for the type org/slf4j/ILoggerFactory used in the signature
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:418)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:383)
at org.apache.kafka.clients.CommonClientConfigs.<clinit>(CommonClientConfigs.java:32)
at org.apache.kafka.clients.producer.ProducerConfig.<clinit>(ProducerConfig.java:305)
at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:304)
Насколько я понимаю ошибку, Camunda и Apache Kafka пытаются вызвать регистратор SLF4J, не так ли?Но в моем случае мне нужен регистратор Camunda.Поэтому я хотел бы отключить ведение журнала Apache Kafka, чтобы обойти проблему.Пока мой простой Kafka Producer выглядит так:
String topicName = "camunda";
String test = "test123";
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092,localhost:9093");
props.put("key.serializer","org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
Producer<String, String> producer = new KafkaProducer <>(props);
ProducerRecord<String, String> record = new ProducerRecord<>(topicName,test);
producer.send(record);
producer.close();
Есть ли способ решить эту проблему?К сожалению, я не смог найти записи о том, как отключить Kafka Logger, или проблема в другом месте?
Заранее большое спасибо