2016-12-31 1 views
1

Я пытаюсь создать простую приложение для интеграции весны, которое глотает данные 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(); 
} 
+0

Показать, пожалуйста, больше трассировки стека для этой ошибки –

+0

M-m-m. Кто подписался на «обогатительный камень»? Покажите, пожалуйста, что поток –

+0

Весь мой код есть. Поскольку я новичок в Spring-интеграции, я думаю, что я что-то неправильно ... – jah

ответ

0

Я сделал ошибку, и забыл раскомментировать привязки я имел в использовании и раньше, так что TransformationService был связан двумя способами (по крайней мере, казалось).

@ServiceActivator(inputChannel = "enrichmentRequestChannel", outputChannel = "enrichmentReplyChannel") 
public EnrichedData transform(Data data) { 
Смежные вопросы