Example usage for org.springframework.messaging.converter MessageConversionException MessageConversionException

List of usage examples for org.springframework.messaging.converter MessageConversionException MessageConversionException

Introduction

In this page you can find the example usage for org.springframework.messaging.converter MessageConversionException MessageConversionException.

Prototype

public MessageConversionException(String description) 

Source Link

Usage

From source file:org.eclipse.hawkbit.event.BusProtoStuffMessageConverter.java

private static void checkIfHeaderMutable(final MessageHeaders headers) {
    if (isAccessorMutable(headers) || headers instanceof MutableMessageHeaders) {
        return;/*  w w  w.  j a  v  a  2 s  . c  om*/
    }
    LOG.error("Protostuff cannot set serializae class because message header is not mutable");
    throw new MessageConversionException(
            "Cannot set the serialize class to message header. Need Mutable message header");
}

From source file:org.springframework.cloud.stream.app.tensorflow.processor.TensorflowCommonProcessorConfiguration.java

@Bean
//@RefreshScope/*from www .j  a v  a2  s.c om*/
@ConditionalOnMissingBean(name = "tensorflowInputConverter")
@SuppressWarnings("unchecked")
public TensorflowInputConverter tensorflowInputConverter() {
    return (input, processorContext) -> {

        if (input instanceof Map) {
            return (Map<String, Object>) input;
        } else if (input instanceof Tuple) {
            Tuple tuple = (Tuple) input;
            Map<String, Object> map = new LinkedHashMap<>(tuple.size());
            for (int i = 0; i < tuple.size(); i++) {
                map.put(tuple.getFieldNames().get(i), tuple.getValue(i));
            }
            return map;
        }

        throw new MessageConversionException("Unsupported input format: " + input);
    };
}

From source file:org.springframework.messaging.core.AbstractMessageSendingTemplate.java

/**
 * Convert the given Object to serialized form, possibly using a
 * {@link MessageConverter}, wrap it as a message with the given
 * headers and apply the given post processor.
 * @param payload the Object to use as payload
 * @param headers headers for the message to send
 * @param postProcessor the post processor to apply to the message
 * @return the converted message//  w  w w . ja  va2 s  .co m
 */
protected Message<?> doConvert(Object payload, @Nullable Map<String, Object> headers,
        @Nullable MessagePostProcessor postProcessor) {

    MessageHeaders messageHeaders = null;
    Object conversionHint = (headers != null ? headers.get(CONVERSION_HINT_HEADER) : null);

    Map<String, Object> headersToUse = processHeadersToSend(headers);
    if (headersToUse != null) {
        if (headersToUse instanceof MessageHeaders) {
            messageHeaders = (MessageHeaders) headersToUse;
        } else {
            messageHeaders = new MessageHeaders(headersToUse);
        }
    }

    MessageConverter converter = getMessageConverter();
    Message<?> message = (converter instanceof SmartMessageConverter
            ? ((SmartMessageConverter) converter).toMessage(payload, messageHeaders, conversionHint)
            : converter.toMessage(payload, messageHeaders));
    if (message == null) {
        String payloadType = payload.getClass().getName();
        Object contentType = (messageHeaders != null ? messageHeaders.get(MessageHeaders.CONTENT_TYPE) : null);
        throw new MessageConversionException("Unable to convert payload with type='" + payloadType
                + "', contentType='" + contentType + "', converter=[" + getMessageConverter() + "]");
    }
    if (postProcessor != null) {
        message = postProcessor.postProcessMessage(message);
    }
    return message;
}

From source file:org.springframework.messaging.simp.stomp.DefaultStompSession.java

@SuppressWarnings("unchecked")
private Message<byte[]> createMessage(StompHeaderAccessor accessor, @Nullable Object payload) {
    accessor.updateSimpMessageHeadersFromStompHeaders();
    Message<byte[]> message;
    if (payload == null) {
        message = MessageBuilder.createMessage(EMPTY_PAYLOAD, accessor.getMessageHeaders());
    } else if (payload instanceof byte[]) {
        message = MessageBuilder.createMessage((byte[]) payload, accessor.getMessageHeaders());
    } else {//from  w  ww  .j av a  2  s.  c om
        message = (Message<byte[]>) getMessageConverter().toMessage(payload, accessor.getMessageHeaders());
        accessor.updateStompHeadersFromSimpMessageHeaders();
        if (message == null) {
            throw new MessageConversionException(
                    "Unable to convert payload with type='" + payload.getClass().getName() + "', contentType='"
                            + accessor.getContentType() + "', converter=[" + getMessageConverter() + "]");
        }
    }
    return message;
}

From source file:org.springframework.messaging.simp.stomp.DefaultStompSession.java

private void invokeHandler(StompFrameHandler handler, Message<byte[]> message, StompHeaders stompHeaders) {
    if (message.getPayload().length == 0) {
        handler.handleFrame(stompHeaders, null);
        return;//from www  . ja  v a  2 s .co m
    }
    Type payloadType = handler.getPayloadType(stompHeaders);
    Class<?> resolvedType = ResolvableType.forType(payloadType).resolve();
    if (resolvedType == null) {
        throw new MessageConversionException("Unresolvable payload type [" + payloadType
                + "] from handler type [" + handler.getClass() + "]");
    }
    Object object = getMessageConverter().fromMessage(message, resolvedType);
    if (object == null) {
        throw new MessageConversionException("No suitable converter for payload type [" + payloadType
                + "] from handler type [" + handler.getClass() + "]");
    }
    handler.handleFrame(stompHeaders, object);
}