Выполнение http-запроса с использованием Apache Camel - PullRequest
0 голосов
/ 12 февраля 2019

У меня проблемы с началом работы с Apache Camel.Я пытаюсь создать маршрут, который бы HTTP-запрос к общедоступному API.Я использую готовый шаблон проекта, и все зависимости POM должны быть правильными.Вот мой код для маршрута:

    import org.apache.camel.builder.RouteBuilder;
    import org.springframework.stereotype.Component;

    @Component
    public class Routes extends RouteBuilder {
        @Override
        public void configure() {


            from("https://rata.digitraffic.fi/api/v1/train-
            locations/latest/")
            .description("Hello world -route")
            .log("Hello world!")
            .to("mock:out");


        }
    }

Итак, я ожидаю получить некоторые данные из API, но сейчас я просто получаю ошибку сборки.

1 Ответ

0 голосов
/ 12 февраля 2019

Я думаю, вы не можете использовать запрос URL в from().Вам нужно создать маршрут, из которого другое событие, например, Timer, или принять сообщение от JMS.

Чтобы делать HTTP-запросы с Apache Camel, я использую компонент HTTP4 и объявляю запрос на * 1004.*.

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-http4</artifactId>
  <version>${camel.version}</version>
</dependency>

Ниже приведен пример с компонентом Timer, который каждые 15 секунд запускает процесс и выполняет HTTP-запрос.

@Component
public class Routes extends RouteBuilder {
    @Override
    public void configure() {

        from("timer:SimpleTimerName?period=15s")
        .description("Hello world -route")
        .log("Hello world!")
        .to("https4://rata.digitraffic.fi/api/v1/train-locations/latest/");
        .log("This is the status code from the response: ${header.CamelHttpResponseCode}")
        .log("This is the return: ${body}")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...