как установить заголовок в процессе в Apache Camel - PullRequest
0 голосов
/ 17 февраля 2019

Я хочу изменить тип содержимого моего заголовка с text / html на application / json.мой текущий заголовок: {CamelHttpMethod = POST ,, CONTENT_TYPE = application / json}

, и я хочу удалить Content-Type = text / html;charset = UTF-8 путем установки заголовка в процессе, таком как:

   public void process(Exchange exchange) throws Exception {
String mainBody = exchange.getIn().getBody().toString();

JsonReader reader = Json.createReader(new StringReader(mainBody));
JsonObject body = reader.readObject();     
reader.close();
exchange.getIn().setHeaders(exchange.CONTENT_TYPE, simple("application/json"));
/System.out.println("your header" + exchange.getIn().getHeaders());
exchange.getIn().setBody(body.getJsonObject("API3"));
 }

}

возможно ли это?

1 Ответ

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

Я думаю, что вы объединяете заголовок Exchange с заголовком ответа HTTP.Более того, хотя может быть возможно установить свойства RESTful в рамках ИМХО Процессора, вы должны использовать только Процессор для бизнес-логики, относящийся к содержимому сообщения Exchange, и использовать что-то вроде REST Camel DSL для обработки RESTзаголовки.

Вот пример того, как это может выглядеть:

    rest().path("/dummy")
          .get()
          .route()
            .setHeader(Exchange.HTTP_RESPONSE_CODE, simple("200"))
            .setHeader(Exchange.CONTENT_TYPE, simple("application/json"))
          .to("bean:" + DUMMY_BEAN_NAME); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...