我们已经在http://activemq.apache.org/jms-and-jdbc-operations-in-one-transaction.html中为队列
指定的jms-context.xml中定义了inboundConnector我为主题定义了一个新的inboundTopicConnector,当我为主题发送消息时,它会给出以下错误java.lang.UnsupportedOperationException:必须指定目标。
你能帮我解决一下这个问题吗?
在jms-context.xml中
bean id="inboundConnector" ....
property name="destinationType" value="javax.jms.Queue"
bean id="inboundTopicConnector" ...
property name="destination" value="${jms.topic}"
property name="destinationType" value="javax.jms.Topic"
在jms-context-without-inbound-listeners.xml
中bean id="sendTo" ...
bean id="topic" class="org.apache.activemq.command.ActiveMQTopic"
property name="physicalName" value="${jms.topic}"
在java文件中
@Autowired
@Qualifier("topic")
private Destination destination;
getJMSTemplate().setPubSubDomain(true);
getJMSTemplate().send(this.destination, new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage("Hello...." + destination);
}
});
谢谢, 卡锡尔
答案 0 :(得分:1)
每当postinq这样的问题时,你必须包括堆栈跟踪 - 以及更完整的配置(例如bean“topic”)。
最佳猜测是未启用自动装配 - 因此目标字段为null
。您可以在调试器中验证这一点。
您是否已加入<context:annotation-config/>
?这可以实现自动装配。