camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <willem.ji...@gmail.com>
Subject Re: Problem using camel - spring with broker bean of activemq
Date Tue, 24 Aug 2010 12:14:56 GMT
Hi Charles,

You don't use a right uri for JmsQueueProducer and JmsQueueConsumer

<endpoint id="JmsQueueProducer" uri="jmsProducer:queue:test1"/>
<endpoint id="JmsQueueConsumer"
uri="jmsConsumer:queue:test1?concurrentConsumers=10"/>

Can you change them to "jms:xxx" and make sure the jms component is 
registered into camel context.


Willem

Charles Moulliard wrote:
> Hi,
> 
> I try to create an activemq broker using spring and use it from camel spring
> context. My code is very similar to the example available in the camel-jms
> test directory
> (camel-jms/src/test/resources/org/apache/camel/component/jms/spring.xml).
> 
> The following route works well
> 
> <beans xmlns="http://www.springframework.org/schema/beans"
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>     xsi:schemaLocation="
>        http://www.springframework.org/schema/beans
>        http://www.springframework.org/schema/beans/spring-beans.xsd
>        http://camel.apache.org/schema/spring
>        http://camel.apache.org/schema/spring/camel-spring.xsd">
> 
>     <camelContext xmlns="http://camel.apache.org/schema/spring">
> 
>         <endpoint id="Timer" uri="timer:messages?period=1h"/>
>         <endpoint id="Direct" uri="direct:messages"/>
>         <endpoint id="Split" uri="bean:messages?method=split"/>
>         <endpoint id="GenerateMessages"
> uri="bean:messages?method=generate"/>
>         <endpoint id="JmsQueueProducer" uri="jmsProducer:queue:test1"/>
>         <endpoint id="JmsQueueConsumer"
> uri="jmsConsumer:queue:test1?concurrentConsumers=10"/>
>         <endpoint id="Log" uri="log:org.apache.camel.example?level=WARN"/>
> 
>         <route id="ProduceMessages" trace="false">
>             <from ref="Timer"/>
>             <to ref="GenerateMessages"/>
>         </route>
> 
>         <route id="SplitandProduceMessagesOnActiveMq" trace="false">
>             <from ref="Direct"/>
>             <to ref="Split"/>
>             <to uri="JmsQueueProducer"/>
>         </route>
> 
>         <route id="ConsumeMessages" trace="false">
>             <from ref="JmsQueueConsumer"/>
>             <to ref="Log"/>
>         </route>
> 
>     </camelContext>
> 
> 
> but get the an error when broker bean definition is used in the
> camel-context.xml file
> 
>     <!-- Create an embedded broker -->
>     <bean id="broker" class="org.apache.activemq.xbean.BrokerFactoryBean">
>         <property name="config" value="classpath:META-INF/activemq.xml" />
>         <property name="start" value="true" />
>     </bean>
> 
>     <!-- Connection for the client -->
>     <bean id="jmsConnectionFactory"
> class="org.apache.activemq.ActiveMQConnectionFactory" depends-on="broker">
>         <property name="brokerURL" value="vm://localhost:61616" />
>     </bean>
> 
> ERROR
> 
> Caused by: org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'broker' defined in file
> [C:\chm\dvlpt\java\apache\camel\tests\camel-ite
> st-activemq-highvolume\target\classes\META-INF\spring\camel-context.xml]:
> Invocation of init method failed; nested exception is
> org.apache.camel.RuntimeCamelException: or
> g.apache.camel.FailedToCreateRouteException: Failed to create route
> SplitandProduceMessagesOnActiveMq at: >>> To[JmsQueueProducer] <<<
in route:
> Route[[From[ref:Direct]]
> -> [To[ref:Split], To[JmsQueueProdu... because of Failed to resolve
> endpoint: JmsQueueProducer due to:
> org.springframework.beans.factory.BeanCreationException: Error crea
> ting bean with name 'JmsQueueProducer': FactoryBean threw exception on
> object creation; nested exception is
> org.apache.camel.ResolveEndpointFailedException: Failed to res
> olve endpoint: jmsProducer://queue:test1 due to: No component found with
> scheme: jmsProducer
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1412)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
>         at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
>         at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
>         at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
>         at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:557)
>         at
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
>         at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
>         at
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
>         at
> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
>         at
> org.apache.camel.spring.Main.createDefaultApplicationContext(Main.java:219)
>         at org.apache.camel.spring.Main.doStart(Main.java:173)
>         at
> org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:65)
>         at
> org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52)
>         at org.apache.camel.impl.MainSupport.run(MainSupport.java:114)
>         at org.apache.camel.impl.MainSupport.run(MainSupport.java:291)
>         at org.apache.camel.spring.Main.main(Main.java:97)
> 
> 
> 
> 
> 
> Any idea is welcome ?
> 
> Regards,
> 
> Charles Moulliard
> 
> Senior Enterprise Architect (J2EE, .NET, SOA)
> Apache Camel - Karaf - ServiceMix Committer
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Blog : http://cmoulliard.blogspot.com |  Twitter :
> http://twitter.com/cmoulliard
> Linkedin : http://www.linkedin.com/in/charlesmoulliard | Skype: cmoulliard
> 


Mime
View raw message