Hi all 
I have just started learning camel and JMS and ActiveMQ, and i am stuck
trying to get camel to read messages off ActiveMQ

which version of the software?
camel version 2.0.0

what platform and JDK?
os x 10.5.8 JDK 1.5.x

If i connect to ActiveMQ using jconsole, i can see there are 2000+ messages
there in a queue called MUPPET.QUEUE

Below is my Java JUnit code, the routebuilder, the spring context xml and
part of the pom.  
What the junit test  does is send a http request to login a user, that
causes my actual application to post a JMS message to MUPPET.QUEUE (yes i do
see the queue growing!)
What I was hoping for is Camel to receive the messages off the queue and
route them to my bean eventbroker which i have already tested with Camel in
a non-JMS way by using 
    @Produce(uri = "direct:start")
    protected ProducerTemplate template;
which worked fine and allowed me to learn routing, endpoints, etc

My eventbroker bean isnt receiving anything!  OK I daresay I am missing
something fundamental about JMS and/or activemq/camel configuration, but I
am stumped...
Do i need to declare a connection factory in my spring xml? or is the
information i have given camel sufficient for it to start taking messages
off the queue?  
All help gratefully accepted!  Any ideas?

Cheers,
Gareth


@ContextConfiguration
public class MyTest extends AbstractJUnit4SpringContextTests {

...
....

    private static class MyListener implements EventListener {

        private int messagesReceived;

        public void notify(String target, Event event) {
            System.out.println("***");
            messagesReceived++;
        }
    }


    @Test
    public void testJms() throws Exception {

        System.out.println("START TEST");
       SimpleEventBroker eventbroker = (SimpleEventBroker)
applicationContext.getBean("eventbroker");
        MyListener eventListener = new MyListener();
        eventbroker.getListeners().add(eventListener);

        System.out.println("LOGIN...");
        for (int i = 0; i < 10; i++) {
            loginValidUser();
        }
        System.out.println("OK LOGGED IN");
        pause(2);
        assertTrue("FAIL: NO MESSAGE RECEIVED",
eventListener.messagesReceived == 1);
    }
}

My route builder...

public class MyTestRoutes extends RouteBuilder {
    
    @Override
    public void configure() {
        
      
from("activemq:MUPPET.QUEUE").to("bean:eventbroker?method=writeToFile");
        
    }
}

MyTest-context.xml (spring context config)...

<?xml version="1.0" encoding="UTF-8"?>

<!-- Configures the Camel Context-->

<beans xmlns="http://www.springframework.org/schema/beans";
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
       xmlns:amq="http://activemq.apache.org/schema/core";
       xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
            http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd
            http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core.xsd";>

<bean id="activemq"
class="org.apache.activemq.camel.component.ActiveMQComponent">
    <property name="brokerURL" value="tcp://localhost:61616" />

</bean>  


    <bean id="eventbroker"
class="test.com.firstclarity.eventbroker.SimpleEventBroker"/>
    
  <camelContext xmlns="http://camel.apache.org/schema/spring";>
    <package>test.com.firstclarity.eventbroker</package>
  </camelContext>

</beans>


My maven pom

<project>

...

  <properties>
    <camel-version>2.0.0</camel-version>
    <activemq-version>5.2.0</activemq-version>
    <xbean-spring-version>3.5</xbean-spring-version>
    <log4j-version>1.2.14</log4j-version>
  </properties>

  <dependencies>

...
...

        <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>2.5.6</version>
      <scope>test</scope>
    </dependency>

        <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>2.5.6</version>
    </dependency>
    
            <dependency>
            <groupId>opensymphony</groupId>
            <artifactId>quartz-all</artifactId>
            <version>1.6.3</version>
        </dependency>
   
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-core</artifactId>
      <version>${activemq-version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-camel</artifactId>
      <version>${activemq-version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-core</artifactId>
      <version>${camel-version}</version>
    </dependency>
    
        <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-stream</artifactId>
      <version>${camel-version}</version>
    </dependency>
    
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-jms</artifactId>
      <version>${camel-version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-spring</artifactId>
      <version>${camel-version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-spring</artifactId>
      <version>${xbean-spring-version}</version>
    </dependency>    
   
   ...
   ...
   
   </dependencies>
  ...
  </project>

-- 
View this message in context: 
http://www.nabble.com/newbie-trying-to-get-messages-off-activemq-and-route-them-using-camel-tp25385346p25385346.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to