верблюжий маршрут - реестр для: mock: результат - PullRequest
0 голосов
/ 31 мая 2019

Привет, у меня сложный верблюжий маршрут, и между маршрутами я отправляю сообщение в MQ с помощью Бина.

.bean("{{tp.mqservice}}")

application.yaml

   mqservice: bean:mqService

приложения test.yaml

mqservice: mock:result

Ниже мой PortfolioRouteTest

@ActiveProfiles("test")
@RunWith(CamelSpringBootRunner.class)
@SpringBootTest(classes = MainApplication.class, webEnvironment = WebEnvironment.RANDOM_PORT)
@MockEndpoints
public class PortfolioTncRouteTest {

    @EndpointInject(value = "{{trade-publisher.portfolio-tnc.source-endpoint}}")
    private ProducerTemplate producerTemplate;

    @EndpointInject(value = "{{trade-publisher.mqservice}}")
    private MockEndpoint mock;
}

Junit

@Test
public void portfolioTncRouteTest() throws InterruptedException {
    data = ...
    Mockito.when(service.search(Mockito.any(....class))).thenReturn(...);
    producerTemplate.sendBody(data);
    mock.expectedMessageCount(1);
    mock.assertIsSatisfied(30000);
}

однако, когда я запускаю тест, я получаю ошибку ниже. Я что-то упустил?

StackTrace

Caused by: org.apache.camel.NoSuchBeanException: No bean could be found in the registry for: mock:result
    at org.apache.camel.component.bean.RegistryBean.getBean(RegistryBean.java:92)
    at org.apache.camel.component.bean.RegistryBean.createCacheHolder(RegistryBean.java:67)
    at org.apache.camel.reifier.BeanReifier.createProcessor(BeanReifier.java:57)
    at org.apache.camel.reifier.ProcessorReifier.createProcessor(ProcessorReifier.java:485)
    at org.apache.camel.reifier.ProcessorReifier.createOutputsProcessorImpl(ProcessorReifier.java:448)
    at org.apache.camel.reifier.ProcessorReifier.createOutputsProcessor(ProcessorReifier.java:415)
    at org.apache.camel.reifier.ProcessorReifier.createOutputsProcessor(ProcessorReifier.java:212)
    at org.apache.camel.reifier.ExpressionReifier.createFilterProcessor(ExpressionReifier.java:39)
    at org.apache.camel.reifier.WhenReifier.createProcessor(WhenReifier.java:32)
    at org.apache.camel.reifier.WhenReifier.createProcessor(WhenReifier.java:24)
    at org.apache.camel.reifier.ProcessorReifier.createProcessor(ProcessorReifier.java:485)
    at org.apache.camel.reifier.ChoiceReifier.createProcessor(ChoiceReifier.java:54)
    at org.apache.camel.reifier.ProcessorReifier.createProcessor(ProcessorReifier.java:485)
    at org.apache.camel.reifier.ProcessorReifier.createOutputsProcessorImpl(ProcessorReifier.java:448)
    at org.apache.camel.reifier.ProcessorReifier.createOutputsProcessor(ProcessorReifier.java:415)
    at org.apache.camel.reifier.TryReifier.createProcessor(TryReifier.java:38)
    at org.apache.camel.reifier.ProcessorReifier.createProcessor(ProcessorReifier.java:485)
    at org.apache.camel.reifier.ProcessorReifier.createOutputsProcessorImpl(ProcessorReifier.java:448)
    at org.apache.camel.reifier.ProcessorReifier.createOutputsProcessor(ProcessorReifier.java:415)
    at org.apache.camel.reifier.ProcessorReifier.createOutputsProcessor(ProcessorReifier.java:212)
    at org.apache.camel.reifier.ProcessorReifier.createChildProcessor(ProcessorReifier.java:231)
    at org.apache.camel.reifier.SplitReifier.createProcessor(SplitReifier.java:42)
    at org.apache.camel.reifier.ProcessorReifier.makeProcessorImpl(ProcessorReifier.java:536)
    at org.apache.camel.reifier.ProcessorReifier.makeProcessor(ProcessorReifier.java:497)
    at org.apache.camel.reifier.ProcessorReifier.addRoutes(ProcessorReifier.java:241)
    at org.apache.camel.reifier.RouteReifier.addRoutes(RouteReifier.java:358)
    ... 56 more

1 Ответ

1 голос
/ 03 июня 2019

Используйте .to вместо .bean, чтобы отправлять его в конечную точку Camel, а затем отправлять в фиктивную конечную точку.Когда используется .bean, тогда он вызывается только для Java-компонента POJO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...