Apache Camel Multipart Netty Rest DSL не работает с зависимостью Camel-Jackson - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь прочитать multipart / form-data, используя netty4-http. Проблема возникает, когда я добавил в свой проект зависимости camel-jackson и camel-xstream, что приводит к JsonParseException, что в идеале не должно происходить, так как мы читаем multipart / form-data. Может ли кто-нибудь помочь мне в этом?

Код прост,

rest().post("/hello")
            .consumes("multipart/form-data")
            .produces("application/json")
            .to("direct:inbound");

from("direct:inbound")
            .routeId("inbound_email")
            .process(new PayloadParser())
            .process(exchange -> System.out.println("In Body : " + exchange.getIn().getBody()))
            .to("log:ie").end();

Ошибка выглядит следующим образом,

2018-05-09 21:24:48.708 DEBUG 31824 --- [ntExecutorGroup] o.a.c.component.netty4.NettyConsumer     : Channel: [id: 0x198248e0, L:/127.0.0.1:8081 - R:/127.0.0.1:65379] received body: HttpObjectAggregator$AggregatedFullHttpRequest(decodeResult: success, version: HTTP/1.1, content: CompositeByteBuf(ridx: 0, widx: 9147, cap: 9147, components=3))
POST /hello HTTP/1.1
Host: localhost:8081
tenantid: 2a721265-bd98-45ec-abc3-f8e81c59e257
Content-Type: multipart/form-data; boundary=--------------------------269100026150164898107684
Content-Length: 9147
2018-05-09 21:24:48.743 DEBUG 31824 --- [ntExecutorGroup] o.a.camel.processor.DefaultErrorHandler  : Failed delivery for (MessageId: ID-GSHYD-C02T823UG8WN-local-1525881280467-0-2 on ExchangeId: ID-GSHYD-C02T823UG8WN-local-1525881280467-0-1). On delivery attempt: 0 caught: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('-' (code 45)) in numeric value: expected digit (0-9) to follow minus sign, for valid numeric value
 at [Source: (ByteArrayInputStream); line: 1, column: 3]

1 Ответ

0 голосов
/ 09 мая 2018

Похоже, что вы неправильно сформировали данные в полезной нагрузке JSON - не зная наверняка, что вы пытаетесь сделать - кажется, что анализатор обрабатывает поле, которое он ожидает преобразовать в число, но он содержит тире ( -).

В сообщении об ошибке все в порядке:

"2018-05-09 21: 24: 48.743 DEBUG 31824 --- [ntExecutorGroup] oacamel.processor.DefaultErrorHandler: сбой доставки для (MessageId: ID-GSHYD-C02T823UG8WN-local-1525881280467-0-2 для ExchangeId : ID-GSHYD-C02T823UG8WN-local-1525881280467-0-1). При попытке доставки: 0 перехвачено: com.fasterxml.jackson.core.JsonParseException: Неожиданный символ ('-' (код 45)) в числовом значении : ожидаемая цифра (0-9) после знака минус, для действительного числового значения «

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