Не могли бы вы предоставить весь маршрут и тестовый код в 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