Могу ли я отправлять файлы, используя ObjectMessage с Spring JMS? - PullRequest
0 голосов
/ 14 апреля 2020

Я использую Spring Boot, jms и IBM MQ. Я знаю, что BytesMessage существует для отправки файлов, но использование ObjectMessage было бы гораздо более удобным для меня. Могу ли я это сделать или это приведет к большим накладным расходам?

1 Ответ

0 голосов
/ 14 апреля 2020

При использовании JmsTemplate.convertAndSend Spring автоматически использует тип сообщения в зависимости от того, что вы отправили. См. SimpleMessageConverter (по умолчанию).

    @Override
    public Message toMessage(Object object, Session session) throws JMSException, MessageConversionException {
        if (object instanceof Message) {
            return (Message) object;
        }
        else if (object instanceof String) {
            return createMessageForString((String) object, session);
        }
        else if (object instanceof byte[]) {
            return createMessageForByteArray((byte[]) object, session);
        }
        else if (object instanceof Map) {
            return createMessageForMap((Map<? ,?>) object, session);
        }
        else if (object instanceof Serializable) {
            return createMessageForSerializable(((Serializable) object), session);
        }
        else {
            throw new MessageConversionException("Cannot convert object of type [" +
                    ObjectUtils.nullSafeClassName(object) + "] to JMS message. Supported message " +
                    "payloads are: String, byte array, Map<String,?>, Serializable object.");
        }
    }
...