Example usage for org.springframework.messaging.handler.invocation InvocableHandlerMethod setMessageMethodArgumentResolvers

List of usage examples for org.springframework.messaging.handler.invocation InvocableHandlerMethod setMessageMethodArgumentResolvers

Introduction

In this page you can find the example usage for org.springframework.messaging.handler.invocation InvocableHandlerMethod setMessageMethodArgumentResolvers.

Prototype

public void setMessageMethodArgumentResolvers(HandlerMethodArgumentResolverComposite argumentResolvers) 

Source Link

Document

Set HandlerMethodArgumentResolver HandlerMethodArgumentResolvers to use to use for resolving method argument values.

Usage

From source file:org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler.java

protected void handleMatch(T mapping, HandlerMethod handlerMethod, String lookupDestination,
        Message<?> message) {/*www .ja  v a2 s .c o  m*/
    if (logger.isDebugEnabled()) {
        logger.debug("Invoking " + handlerMethod.getShortLogMessage());
    }
    handlerMethod = handlerMethod.createWithResolvedBean();
    InvocableHandlerMethod invocable = new InvocableHandlerMethod(handlerMethod);
    invocable.setMessageMethodArgumentResolvers(this.argumentResolvers);
    try {
        Object returnValue = invocable.invoke(message);
        MethodParameter returnType = handlerMethod.getReturnType();
        if (void.class == returnType.getParameterType()) {
            return;
        }
        if (returnValue != null && this.returnValueHandlers.isAsyncReturnValue(returnValue, returnType)) {
            ListenableFuture<?> future = this.returnValueHandlers.toListenableFuture(returnValue, returnType);
            if (future != null) {
                future.addCallback(new ReturnValueListenableFutureCallback(invocable, message));
            }
        } else {
            this.returnValueHandlers.handleReturnValue(returnValue, returnType, message);
        }
    } catch (Exception ex) {
        processHandlerMethodException(handlerMethod, ex, message);
    } catch (Throwable ex) {
        if (logger.isErrorEnabled()) {
            logger.error("Error while processing message " + message, ex);
        }
    }
}

From source file:org.springframework.messaging.handler.invocation.AbstractMethodMessageHandler.java

protected void processHandlerMethodException(HandlerMethod handlerMethod, Exception ex, Message<?> message) {
    InvocableHandlerMethod invocable = getExceptionHandlerMethod(handlerMethod, ex);
    if (invocable == null) {
        logger.error("Unhandled exception from message handler method", ex);
        return;//from  ww  w  .j a v  a2  s .c o m
    }
    invocable.setMessageMethodArgumentResolvers(this.argumentResolvers);
    if (logger.isDebugEnabled()) {
        logger.debug("Invoking " + invocable.getShortLogMessage());
    }
    try {
        Object returnValue = invocable.invoke(message, ex, handlerMethod);
        MethodParameter returnType = invocable.getReturnType();
        if (void.class == returnType.getParameterType()) {
            return;
        }
        this.returnValueHandlers.handleReturnValue(returnValue, returnType, message);
    } catch (Throwable ex2) {
        logger.error("Error while processing handler method exception", ex2);
    }
}