Camel не может найти {{xxx}} в свойствах из текста после обновления до Camel 3.0.0-RC3 с использованием весенней загрузки 2.2.4 - PullRequest
0 голосов
/ 28 апреля 2020

Я использовал весеннюю загрузку 2.2.4.RELEASE и верблюжий вариант 2.23.0

Чтобы дать верблюду доступ к свойствам и использовать их в маршрутах Ури, используя {{ }}

добавление camel-spring-boot-starter зависимости и определения PropertySourcesPlaceholderConfigurer, SpringCamelContext bean было достаточно, чтобы заставить его работать

@SpringBootApplication
@PropertySource(ignoreResourceNotFound = false, value= {"classpath:myProperties.properties"})
public class MyApp {

    ...
    @Bean
    public SpringCamelContext camelContext(ApplicationContext applicationContext) {
        return new SpringCamelContext(applicationContext);
    }

    @Bean
    public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
        return new PropertySourcesPlaceholderConfigurer();
    }
}

-

Теперь, после того как я обновил camel-spring-boot-starter до 3.0.0-RC3 после руководство по миграции и после исправления импорта для компонентов. Во время выполнения верблюд не может найти свойства, и я получаю следующее:

Property with key [xxx] not found in properties from text: activemq:queue:{{xxx}}

Есть идеи, что изменилось и почему {{ }} больше не работает в моих маршрутах?


ОБНОВЛЕНИЕ 1

Я обновил весеннюю загрузку до 2.2.6.RELEASE и camel-spring-boot-starter до 3.2.0 с org.apache.camel.springboot Я все еще получаю то же самое ...

Маршруты не причудливы.

Мне нужно, чтобы {{ }} прочитал xxx значение из myProperties.properties

Используя @Value("${xxx}") работает, пружина может получить к нему доступ, и я мог передать его в маршрут URI String.

Доступ к {{xxx}} в верблюдах URI - это то, что перестало работать после обновления.

@Component
public class MyRoutes extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        from("activemq:queue:{{xxx}}")
            .to("activemq:topic:targetTopic");
    }
}

ОБНОВЛЕНИЕ 2

Я отразил тест, выполненный по принятому ответу. Удаление бобов SpringCamelContext и PropertySourcesPlaceholderConfigurer сделало свое дело.

Я удалил боб SpringCamelContext, и это сработало. Очевидно, этот новый весенний верблюжий стартер сам позаботится о SpringCamelContext, и мой компонент переопределил автоматическую конфигурацию, связанную со свойствами чтения верблюдов, используя {{ }}

. Я также удалил компонент PropertySourcesPlaceholderConfigurer, и @Value не остановился работает.

1 Ответ

1 голос
/ 28 апреля 2020

Используете ли вы файл application.properties в приложении весенней загрузки? Если так, {{}} должен работать. Хотя это поможет увидеть ваш верблюжий код.

Редактировать 1:

Это работает для меня. Я использую Camel 3.2.0 с Spring Boot 2.2.6. У меня есть одно свойство prop=Hello World в файле myProperties.properties в моем classpath. Мне не нужно было определять PropertySourcesPlaceholderConfigurer и SpringCamelContext bean

@SpringBootApplication
@PropertySource(ignoreResourceNotFound = false, value = {"classpath:myProperties.properties"})
public class DemoApplication extends RouteBuilder{

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @Override
    public void configure() throws Exception {
        from("timer:foo?repeatCount=1")
        .log("{{prop}}");
    }
}

Log

2020-04-28 21:26:57.904  INFO 10392 --- [  restartedMain] o.a.c.impl.engine.AbstractCamelContext   : Route: route6 started and consuming from: timer://foo
2020-04-28 21:26:57.921  INFO 10392 --- [  restartedMain] o.a.c.impl.engine.AbstractCamelContext   : Total 1 routes, of which 1 are started
2020-04-28 21:26:57.937  INFO 10392 --- [  restartedMain] o.a.c.impl.engine.AbstractCamelContext   : Apache Camel 3.2.0 (CamelContext: camel-6) started in 0.067 seconds
2020-04-28 21:26:57.938  INFO 10392 --- [  restartedMain] c.p.testproperties.DemoApplication       : Started DemoApplication in 0.406 seconds (JVM running for 82.808)
2020-04-28 21:26:57.955  INFO 10392 --- [  restartedMain] .ConditionEvaluationDeltaLoggingListener : Condition evaluation unchanged
2020-04-28 21:26:58.920  INFO 10392 --- [4 - timer://foo] route6                                   : Hello World

Редактировать 2:

Возможно, вы забираете свою собственность с биржи, что может стать причиной этой проблемы. Свойства выборки из биржи были изменены с версии 3.0.0 Camel. Можете ли вы попробовать exchangeProperty("xxx")

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