Я пытаюсь создать простую приложение для интеграции весны, которое глотает данные HTTP и пересылает их в две очереди. В одной из этих очередей (игнорируйте другую на данный момент) я хотел бы обогатить данные, а затем отправить их на конечную точку AMQP .SpelEvaluationException: EL1004E: (поз. 8): вызов метода: преобразование метода (байт []) не найдено
Моя проблема заключается в следующем исключение:
MessagingTemplate $ TemporaryReplyChannel Ответное сообщение получено, но принимающий поток покинуло вследствие исключения при отправке сообщения запрос: ErrorMessage [полезная нагрузка = org.springframework .messaging.MessageHandlingException: вложенной исключение составляет org.springframework.expression.spel.SpelEvaluationException: EL1004E: (поз 8): Метод вызова: Метод преобразования (байт []) не могут быть найдены на типа com.EnrichmentService,
Я уверен, что проглоченные данные сериализуются таким образом , что моя служба по обогащению, который предназначен для работы на DTO (Data в моем примере), не могу понять. Я попытался реализовать Serializable на моем DTO.
Мой вопрос в том, как бы я отлаживал типы, протекающие по моим каналам?
Мой код выглядит следующим образом:
@Bean
public StandardIntegrationFlow ingestRaw() {
return IntegrationFlows.from(httpIngest())
.headerFilter("accept-charset", "http_requestMethod")
.publishSubscribeChannel(Executors.newCachedThreadPool(),
input -> input
.subscribe(enrichmentFlow()))
.subscribe(anotherFlow()))
.get();
}
@Bean
public IntegrationFlow enrichmentFlow(){
return flow -> flow.enrich(e -> e
.requestChannel(enrichmentRequestChannel())
.replyChannel(enrichmentReplyChannel())
.requestPayload(Message::getPayload))
.transform(Transformers.fromJson(Data.class))
.handle(Data.class, (payload, headers) -> enrichmentService.transform(payload))
.handle(amqpOutboundFlow());
}
@Bean
public HttpRequestHandlingMessagingGateway httpIngest() {
return Http.inboundGateway(SINK_ENDPOINT_PATH).get();
}
@Bean("enrichmentRequestChannel")
public DirectChannel enrichmentRequestChannel(){
return MessageChannels.direct().get();
}
@Bean("enrichmentReplyChannel")
public DirectChannel enrichmentReplyChannel(){
return MessageChannels.direct().get();
}
@Bean
public AmqpOutboundEndpoint amqpOutboundFlow() {
return Amqp.outboundAdapter(this.amqpTemplate).routingKeyExpression("enrichOut.enrichedGroup").get();
}
Показать, пожалуйста, больше трассировки стека для этой ошибки –
M-m-m. Кто подписался на «обогатительный камень»? Покажите, пожалуйста, что поток –
Весь мой код есть. Поскольку я новичок в Spring-интеграции, я думаю, что я что-то неправильно ... – jah