簡體   English   中英

"Spring集成:自定義入站通道適配器沒有此類方法異常"

[英]Spring integration: no such method exception for custom inbound channel adapter

我正在嘗試從我的As2MessageHandler<\/code>類調用processMessage<\/code>方法作為我使用自定義入站通道適配器進入 spring 集成的入口點。 但是我一直收到這個錯誤,說當它明顯在類中時找不到該方法:

as2MessageHandler 類:


@Component
public class As2MessageHandler extends AbstractProcessorModule implements IProcessorStorageModule {

    private static final Logger LOGGER = LoggerFactory.getLogger(As2MessageHandler.class);


    @Override
    public boolean canHandle(@Nonnull String s, @Nonnull IMessage iMessage, @Nullable Map<String, Object> map) {
        LOGGER.info(" Handle Info:" + s);

        return s.equals(DO_STORE);
    }

    @Override
    public void handle(@Nonnull String s, @Nonnull IMessage iMessage, @Nullable Map<String, Object> map) throws AS2Exception {

        LOGGER.info("----- AS2 MESSAGE RECEIVED !!! ------");

        LOGGER.info(iMessage.getContentType());
        LOGGER.info(iMessage.getContentDisposition());
        LOGGER.info(iMessage.getAsString());

        processMessage(iMessage);

    }

    public String processMessage(IMessage message) {

        LOGGER.info("BEGIN PROCESSING MESSAGE");

        return message.getAsString();
    }


}

錯誤是正確的。 由於方法的簽名是錯誤的,而不是它的存在,它可能會產生一點誤導。 因此,由於入站通道適配器是流程的開始,因此該方法實際上不能有任何輸入來為消息生成數據。 因此,尚不清楚您對該IMessage作為該方法的輸入的期望是什么。

不清楚您的設計是什么,但輪詢器調用<int:inbound-channel-adapter>中的 POJO 方法作為消息的數據源。 換句話說,作為源的 POJO 方法不能有參數 - 只有返回。 這就是拋出異常的原因。

我在您的As2MessageHandler不到任何可以作為入站通道適配器中消息源的內容。 這個看起來更像是一個服務激活器。 請修改您的設計以支持其他真正可用作該 AS2 協議中的數據源的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM