Как отправить ответ JSON с конечной точки причала в Apache Camel? - PullRequest
0 голосов
/ 05 августа 2020

Я работаю над сквозной службой REST в Apache Camel. Открыта конечная точка с компонентом пристани, который вызывает другую конечную точку REST, которая отвечает JSON, как показано ниже. Но когда я нажимаю открытый URL-адрес Camel в браузере, я не получаю желаемого результата. Поскольку я только начал работать над Camel, я буду очень признателен за любую помощь.

from("jetty:http://0.0.0.0:8080/api/camel/appoverview")
        .to("http4://10.150.60.237:80/api/itsb/applicationoverview?httpMethod=GET&bridgeEndpoint=true&throwExceptionOnFailure=false")
        .transform().simple("<out>${body}</out>")
        .log("Response sent -> ${body}");

Получение вывода -

<out> {
         "applicationId": "1",
         "applicationName": "NetInfo",
         "serviceNoticeCount": "13",
         "operationalStatus": {
            "id": "2",
            "status": "red",
            "statusLevel": "3"
         }
      }
</out>

Желаемый результат -

 {
         "applicationId": "1",
         "applicationName": "NetInfo",
         "serviceNoticeCount": "13",
         "operationalStatus": {
            "id": "2",
            "status": "red",
            "statusLevel": "3"
         }
  }

1 Ответ

1 голос
/ 05 августа 2020

Это сработало после демаршалинга ответа JSON, как показано ниже -

from("jetty:http://0.0.0.0:8080/api/camel/appoverview")
        .to("http4://10.150.60.237:80/api/itsb/applicationoverview?httpMethod=GET&bridgeEndpoint=true&throwExceptionOnFailure=true")
        .unmarshal().json(JsonLibrary.Jackson)
        .transform().simple("${body}")
        .log("Response sent -> ${body}");

В pom необходимо добавить зависимость для немаршаллинга. xml

<dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-jackson</artifactId>
</dependency>

...