当前位置: 首页 > 知识库问答 >
问题:

Spring Boot JMS MarshallingMessageConverter回复

薛博赡
2023-03-14

我有一个JMS监听器,与这里的监听器类似:

使用JMS模板和Spring Boot的同步消息发送和接收

它接收一个XML有效负载。但与那个不同,我还想返回一个回复。如果我返回一个字符串,它可以正常工作,但正如我对消息有效负载所做的那样,我想返回一个JAXB对象。

然而,如果我返回消息,Spring会尝试使用SimpleMessageConverter转换对象。

如何配置转换回复有效负载时要使用的MarshallingMessageConverter?

共有1个答案

爱花蜂
2023-03-14

我必须配置DefaultJmsListenerContainerFactory的消息转换器。

但奇怪的是,我已经有一个用于DefaultMessageHandlerMethod odFactory和JmsMessagingTemboard的MarshallingMessageConverter,它来自另一个Java包(org.springframework.messaging.converter.MarshallingMessageConverter)。

@Bean
public JmsListenerContainerFactory<?> jmsListenerFactory(ConnectionFactory connectionFactory,
    DefaultJmsListenerContainerFactoryConfigurer configurer)
{
    DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
    factory.setErrorHandler(errorHandler());
    factory.setMessageConverter(jmsMarshallingMessageConverter());  // !!!!

    configurer.configure(factory, connectionFactory);

    return factory;
}

@Bean
public org.springframework.jms.support.converter.MarshallingMessageConverter jmsMarshallingMessageConverter()
{
    Jaxb2Marshaller marshaller = marshaller();

    org.springframework.jms.support.converter.MarshallingMessageConverter converter =
        new org.springframework.jms.support.converter.MarshallingMessageConverter();
    converter.setMarshaller(marshaller);
    converter.setUnmarshaller(marshaller);
    converter.setTargetType(MessageType.TEXT);

    return converter;
}
 类似资料:
  • 问题内容: 例如我有一个功能: 我怎样才能返回AJAX后得到的? 问题答案: 因为请求是异步的,所以您无法返回ajax请求的结果(而同步ajax请求是一个 糟糕的 主意)。 最好的选择是将自己的回调传递给f1 然后,您将像这样致电:

  • 最近,不和谐增加了新功能,当用户回复消息时,它会引用它,并添加一行回复者的个人资料图片与原始发件人的个人资料图片和消息,如图所示(我回复来自机器人的消息): 有可能不和谐地做这件事吗。js? 目前,我使用,但是机器人只是发送一条消息,而不是实际回复(发送“回复类型”消息),这是我通过应用程序的GUI手动回复消息时显示的(如上所示)。

  • 获取当前设置的回复规则 $app->auto_reply->current();

  • 默认回复 设置默认回复快捷键 后台回复素材设置-发消息-回复消息

  • 关注回复 设置关注回复快捷键 回复素材设置-点击关注-回复消息

  • 我在ViewDidLoad函数中有一些代码,它将在调用堆栈的末尾设置一个类变量。我试图重构代码,使其成为一个单独的函数,它将返回值,而不是设置类变量。 由于我缺乏swift知识,我不确定哪里出了问题,我的函数似乎返回得太厄尔了,因为我可以在调试器中告诉我,它在被设置为之前跳转到return。 我还可以在调试器中看到,内部函数在返回主函数后调用。 如何等待内部调用完成后再返回?或者什么是正确的快速方

  • 考虑这个代码 我做了一个包装器来延迟的方法调用是否有办法从setTimeout内部的回调中检索值,即从?

  • 如您所见,它将参数和的和保存在变量中,然后将包含它们的和的eax寄存器保存在变量中,就像函数返回值一样。 这样做是因为函数是用返回值定义的吗?