List of usage examples for org.springframework.messaging.converter MessageConversionException MessageConversionException
public MessageConversionException(String description)
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); }