Не могли бы вы предоставить весь маршрут и тестовый код в Git? Спасибо.

я есть приложение Springboot, в котором настроены верблюжьи маршруты.

public class CamelConfig {
private static final Logger LOG = LoggerFactory.getLogger(CamelConfig.class);

@Value("${activemq.broker.url:tcp://localhost:61616}")
String brokerUrl;

@Value("${activemq.broker.maxconnections:1}")
int maxConnections;

@Bean
ConnectionFactory jmsConnectionFactory() {
    PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory(new ActiveMQConnectionFactory(brokerUrl));
    pooledConnectionFactory.setMaxConnections(maxConnections);
    return pooledConnectionFactory;
}

@Bean
public RoutesBuilder route() {
    LOG.info("Initializing camel routes......................");
    return new SpringRouteBuilder() {
        @Override
        public void configure() throws Exception {
            from("activemq:testQueue").to("bean:queueEventHandler?method=handleQueueEvent");
             }
    };
}

}

Я хочу проверить этот маршрут от activemq: testQueue к queueEventHandler :: handleQueueEvent
Я пробовал разные вещи, упомянутые здесьhttp://camel.apache.org/camel-test.html, но, похоже, не работает.

Я пытаюсь сделать что-то подобное

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {CamelConfig.class,   CamelTestContextBootstrapper.class})
public class CamelRouteConfigTest {

@Produce(uri = "activemq:testQueue")
protected ProducerTemplate template;

@Test
public void testSendMatchingMessage() throws Exception {
    template.sendBodyAndHeader("testJson", "foo", "bar");
    .....
    ..... verify handleQueueEvent method is called on bean queueEventHandler by mocking

}

Но мой ProducerTemplate всегда нулевой. Я попробовал Autowiring Camelcontext, для которого я получил исключение, сказав, что он не может разрешить camelContext. Но это можно решить, добавив SpringCamelContext.class в классы @SpringBootTest. Но мой ProducerTemplate все еще нулевой.

пожалуйста, предложите. Я использую Camel 2.18 Springboot 1.4

Ответы на вопрос(0)

Ваш ответ на вопрос