我在WebServiceTemplate中使用JmsMessageSender进行JMS上的Spring-WS通信。我必须处理主题,所以我使用了JmsMessageSender超类的setPubSubDomain方法,并且消息在目标主题上正确。但是,对于处理响应,会创建一个临时队列,不是主题。如何设置spring bean以获得响应的临时主题,而不是队列?
要添加一个提示,有一个AbstractMessageListenerContainer类的setReplyPubSubDomain方法,它看起来正是我需要的,但我从未使用过这个侦听器容器,我不知道如何将它包装到我的bean中
我的配置如下:
@Bean
public WebServiceTemplate webServiceTemplate() {
WebServiceTemplate webServiceTemplate = new WebServiceTemplate();
webServiceTemplate.setMessageFactory(messageFactory());
webServiceTemplate.setMessageSender(messageSender());
webServiceTemplate.setDefaultUri("jms:topicname.topicname.topicname?priority=3&deliveryMode=NON_PERSISTENT&messageType=TEXT_MESSAGE");
return webServiceTemplate;
}
@Bean
public JmsMessageSender messageSender() {
JmsMessageSender messageSender = new JmsMessageSender();
messageSender.setConnectionFactory(connectionFactory());
messageSender.setPubSubDomain(true);
return messageSender;
}