Try using <routeBuilderRef> and refer to a spring bean that is your
route builder.

The <packageScan> may have problems on your side, somehow.



On Thu, Sep 10, 2009 at 5:47 PM, Gareth Williams
<[email protected]> wrote:
>
> 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.
>
>



-- 
Claus Ibsen
Apache Camel Committer

Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Reply via email to