Apache Camel — как правильно отлаживать маршрутыJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Apache Camel — как правильно отлаживать маршруты

Сообщение Anonymous »

У меня возникли некоторые проблемы с изучением Apache Camel.
Я пытался создать очень простой сервис отдыха с Jetty и Rest DSL, вот так:

Код: Выделить всё

package org.examples.routes.camelRestRoute;

import org.apache.camel.builder.RouteBuilder;

public class CamelRestRouteBuilder extends RouteBuilder {
@Override
public void configure()  {

restConfiguration()
.component("jetty")
.host("localhost")
.port(8091);

rest("/api")
.get("/hello")
.to("direct:helloWorld");

from("direct:helloWorld")
.transform().simple("Hello, world");
}
}
К сожалению, это не сработало. Когда я вызвал Curl на этой конечной точке, я получил ошибку HTTP 500, то же самое в браузере. Но порт был открыт во время работы моей программы (проверено с помощью netstat). У меня включена трассировка в Apache Camel, main.configure().setTracing(true);, но даже несмотря на то, что таким образом отображалось больше журналов, в журнале вообще не появлялось ошибок, когда я делал http-запрос .
Я искал во многих местах и ​​не смог найти, в чем дело, примеры непосредственно из документации Apache Camel тоже не работали. Наконец я нашел работающий пример переполнения стека, закомментировал построчно, чтобы увидеть, что там необходимого, чего у меня не было, и оказалось, что имя моего прямого маршрута .routeId("Hello World!") имело решающее значение. Итак, теперь код выглядел так:

Код: Выделить всё

package org.examples.routes.camelRestRoute;

import org.apache.camel.builder.RouteBuilder;

public class CamelRestRouteBuilder extends RouteBuilder {
@Override
public void configure()  {

restConfiguration()
.component("jetty")
.host("localhost")
.port(8091);

rest("/api")
.get("/hello")
.to("direct:helloWorld");

from("direct:helloWorld")
.routeId("helloWorld") // this is changed
.transform().simple("Hello, wolrd");

}

}
Поэтому мой вопрос в основном заключается в следующем: откуда я мог это знать? Есть пункт про Inline Rest DSL как единый маршрут, но где эта информация? Здесь?

Для этого вы ДОЛЖНЫ использовать прямые конечные точки, и каждая конечная точка должна иметь уникальное имя для каждой службы.

Разве имена не генерируются автоматически? Далее в описании параметров вместо этого пишется:

Встроенные маршруты в rest-dsl, которые связаны с использованием прямых конечных точек. По умолчанию каждая служба в Rest DSL представляет собой отдельный маршрут. Это означает, что у вас будет как минимум два маршрута для каждой службы (rest-dsl и маршрут, связанный с rest-dsl). Включение этого параметра позволяет Camel оптимизировать и встроить его в единый маршрут. Однако для этого необходимо использовать прямые конечные точки**, которые должны быть уникальными для каждой службы**. По умолчанию этот параметр имеет значение false.

Поэтому даже не имена должны быть уникальными, а маршруты, и мои были уникальными.
Как мне отладить подобные вещи, если они не отображаются в журналах? Это не первый раз, когда у меня что-то не работает в Camel, и логи мне ничего не говорят, поэтому я хочу знать, как правильно это отладить.

Подробнее здесь: https://stackoverflow.com/questions/790 ... bug-routes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Apache Camel — как правильно отлаживать маршруты
    Anonymous » » в форуме JAVA
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Apache Camel: как лучше всего повторно использовать маршруты Camel из других маршрутов?
    Anonymous » » в форуме JAVA
    0 Ответы
    104 Просмотры
    Последнее сообщение Anonymous
  • Org.apache.camel.ResolveEndpointFailedException: не удалось разрешить конечную точку из-за: org.apache.camel.Header отсу
    Anonymous » » в форуме JAVA
    0 Ответы
    232 Просмотры
    Последнее сообщение Anonymous
  • Как правильно отлаживать маршруты
    Anonymous » » в форуме JAVA
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Как контролировать маршруты Apache Camel в проекте Java с помощью Hawtio
    Anonymous » » в форуме JAVA
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»