我可以在Spring JMS中使用ObjectMessage发送文件吗?

问题描述 投票:0回答:1

我使用Spring Boot,jms和IBM MQ。我知道存在BytesMessage可以发送文件,但是使用ObjectMessage对我来说将更加方便。我可以这样做吗,否则会导致大量的开销?

java spring spring-boot ibm-mq spring-jms
1个回答
0
投票

[使用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.");
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.