不使用camelproxy调用Camel JMS-Endpoint

时间:2013-02-18 16:02:51

标签: java jms apache-camel spring-jms

我创建了一个jms端点,并且能够从spring xml文件中的camel:proxy的客户端宽度调用它。 现在我希望能够直接调用JMS端点而无需使用Spring / Camel Proxy。我想通过URL调用它。

我该怎么做

谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用Camel中的ProducerTemplate API向任何类型的Camel端点/组件发送消息。

详见:http://camel.apache.org/producertemplate.html

答案 1 :(得分:0)

可以使用以下

发布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>
        <from uri="jms:queue:queueName" />
        <setExchangePattern pattern="InOut" />
        <to uri="seda:camel-handler" />
    </route>