Вызов Camel JMS-Endpoint без использования camelproxy

Я создал конечную точку jms и могу вызывать ее из клиентской ширины верблюда: прокси в файле spring xml. теперь я хочу иметь возможность напрямую вызывать конечную точку JMS без использования прокси-сервера Spring/Camel. Я хочу вызвать его через URL.

Как я могу это сделать

Спасибо


person Farouk Alhassan    schedule 18.02.2013    source источник


Ответы (2)


Вы можете использовать API ProducerTemplate в Camel для отправки сообщения на любую конечную точку/компонент Camel.

Подробнее см. на странице: http://camel.apache.org/producertemplate.html.

person Claus Ibsen    schedule 18.02.2013

Верблюжья очередь может быть опубликована с использованием следующих

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>
person Farouk Alhassan    schedule 19.02.2013