Cómo arreglar 'URL no válida', mientras que la creación de Kafka incrustado en pruebas de la primavera

iSuckAsProgrammer:

Estoy tratando de construir una prueba para una pieza de código que los datos de envío a un tema Kafka, he estado leyendo un ejemplo que se parece bastante sencillo, sin embargo, cuando trato de ejecutar la prueba, no consigue lanzar este error: 'URL no válida en bootstrap.servers: spring.embedded.kafka.brokers'

Los '' spring.embedded.kafka.brokers URL que lo tengo de la documentación, que no pueden encontrar en este momento el origen del vínculo sin embargo. Esto es lo que he probado hasta ahora:

@RunWith(MockitoJUnitRunner.class)
@SpringBootTest
@DirtiesContext
@TestPropertySource({"classpath:application-test.properties"})
public class PublishCustomerServiceImplTest {

    private String bootstrapServers = "spring.embedded.kafka.brokers";

    private static final String TOPIC = "TopicName";

    public Map<String, Object> producerConfigs() {
        Map<String, Object> props = new HashMap<>();
        props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
        props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        props.put(ProducerConfig.RETRIES_CONFIG, 3);
        props.put(ProducerConfig.PARTITIONER_CLASS_CONFIG, "org.apache.kafka.clients.producer.internals.DefaultPartitioner");
        return props;
    }

    public ProducerFactory<String, CustomerPublishRequest> producerFactory() {
        return new DefaultKafkaProducerFactory<>(producerConfigs());
    }

    public KafkaTemplate<String, CustomerPublishRequest> kafkaTemplate() {
        return new KafkaTemplate<>(producerFactory());
    }

    @ClassRule
    public static EmbeddedKafkaRule embeddedKafka = new EmbeddedKafkaRule(1, true, TOPIC);

    @Test
    public void publishCustomerTest() throws Exception {

        KafkaTemplate<String, CustomerPublishRequest> kafkaTemplate = kafkaTemplate();

        ListenableFuture<SendResult<String, CustomerPublishRequest>> future = kafkaTemplate.send(TOPIC, CustomerRequestDummy.getCustomer());
        SendResult<String, CustomerPublishRequest> sendResult = future.get();
        long offset = sendResult.getRecordMetadata().offset();

    }
}

Cualquier ayuda será apreciada.

Consorcio inactivo :

El mensaje de error es claro que es spring.embedded.kafka.brokersURL no válida de arranque-servidor, lo consigue a partirEmbeddedKafkaRule

@RunWith(MockitoJUnitRunner.class)
@SpringBootTest
@DirtiesContext
@TestPropertySource({"classpath:application-test.properties"})
public class PublishCustomerServiceImplTest {

private static final String TOPIC = "TopicName";

 @ClassRule
public static EmbeddedKafkaRule embeddedKafka = new EmbeddedKafkaRule(1, true, TOPIC);

public Map<String, Object> producerConfigs() {
    Map<String, Object> props = new HashMap<>();
    props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, embeddedKafka.getEmbeddedKafka().getBrokersAsString());
    props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
    props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
    props.put(ProducerConfig.RETRIES_CONFIG, 3);
    props.put(ProducerConfig.PARTITIONER_CLASS_CONFIG, "org.apache.kafka.clients.producer.internals.DefaultPartitioner");
    return props;
}

public ProducerFactory<String, CustomerPublishRequest> producerFactory() {
    return new DefaultKafkaProducerFactory<>(producerConfigs());
}

public KafkaTemplate<String, CustomerPublishRequest> kafkaTemplate() {
    return new KafkaTemplate<>(producerFactory());
}

@Test
public void publishCustomerTest() throws Exception {

    KafkaTemplate<String, CustomerPublishRequest> kafkaTemplate = kafkaTemplate();

    ListenableFuture<SendResult<String, CustomerPublishRequest>> future = kafkaTemplate.send(TOPIC, CustomerRequestDummy.getCustomer());
    SendResult<String, CustomerPublishRequest> sendResult = future.get();
    long offset = sendResult.getRecordMetadata().offset();

    }
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=230941&siteId=1
Recomendado
Clasificación