我创建了一个 jms 端点,并能够从客户端宽度调用它,即 spring xml 文件中的 camel:proxy。现在我希望能够在不使用 Spring/Camel 代理的情况下直接调用 JMS 端点。我想通过 URL 调用它。
我怎样才能做到这一点
谢谢
我创建了一个 jms 端点,并能够从客户端宽度调用它,即 spring xml 文件中的 camel:proxy。现在我希望能够在不使用 Spring/Camel 代理的情况下直接调用 JMS 端点。我想通过 URL 调用它。
我怎样才能做到这一点
谢谢
您可以使用 Camel 中的 ProducerTemplate API 向任何类型的 Camel 端点/组件发送消息。
骆驼队列可以发布到使用以下
public DirectJMSRemotingClient() throws JMSException {
factory = new ActiveMQConnectionFactory(brokerURL);
connection = factory.createConnection();
connection.start();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("queueName");
producer = session.createProducer(destination);
}
public void sendMessage() throws JMSException {
TextMessage myTextMsg = session.createTextMessage();
myTextMsg.setText("Hello World");
System.out.println("Sending Message: " + myTextMsg.getText());
producer.send(myTextMsg);
}
public static void main(String[] args) throws Exception {
DirectJMSRemotingClient client = new DirectJMSRemotingClient();
client.sendMessage();
}
并且 Route 可以像这样在骆驼中定义
<route>
<from uri="jms:queue:queueName" />
<setExchangePattern pattern="InOut" />
<to uri="seda:camel-handler" />
</route>