java - 我可以通过 Spring JMS 使用 ObjectMessage 发送文件吗?

标签 java spring spring-boot ibm-mq spring-jms

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

最佳答案

当使用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.");
        }
    }

关于java - 我可以通过 Spring JMS 使用 ObjectMessage 发送文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61208100/

相关文章:

java - 在Java方法中打印数组

java - 更新 Maven 依赖项

java - 带有 spring data 的多个数据源 - 需要设置属性 continueOnError

java - Spring-Data-Rest validator

java - 如何在 Tomcat 启动时触发 servlet

java - 如何为每个设备设置正确的视口(viewport) - android PhoneGap

java - 如何反射(reflect)私有(private)静态嵌套子类?

java - 使用 JAVA 将 HTML5 编写的 SVG 转换为 JPG

java - 整个文档和片段都用一个 XSD 吗?

java - @Autowired 不能在类实例使用反射创建的类内部工作