I cannot inject a ProducerTemplate into a RouteBuilder. I know I can look it
up from the context, but thought it would be cleaner to inject. I am able to
inject into a class that is not a RouteBuilder.
Configuration:
<!-- Camel context - scans for RouteBuilders -->
<camel:camelContext id="camel">
<camel:package>com.recondotech.service</camel:package>
<!-- Enable JMX connector so we can connect to the server and browse
mbeans -->
<camel:jmxAgent id="agent" createConnector="true"
registryPort="1099" serviceUrlPath="/${service.deployable.name}" />
<camel:template id="camelTemplate"/>
</camel:camelContext>
<bean id="benefitRequester"
class="com.recondotech.service.eligibility.BenefitRequester">
<property name="camelTemplate" ref="camelTemplate"/>
<property name="prsManager" ref="prsManager"/>
</bean>
BenefitRequester is a RouteBuilder
Exception:
2009-06-08 10:25:24,568 ERROR org.apache.camel.spring.Main.main()
org.apache.camel.util.MainSupport - Failed:
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'camel:beanPostProcessor': Cannot resolve reference to bean
'camel' while setting bean property 'camelContext'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'camel': Invocation of init method failed; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'com.recondotech.service.eligibility.Service#0' defined in class
path resource [BaseService-context.xml]: Cannot resolve reference to bean
'benefitRequester' while setting bean property 'benefitRequester'; nested
exception is org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'benefitRequester' defined in class path resource
[BaseService-context.xml]: Cannot resolve reference to bean 'camelTemplate'
while setting bean property 'camelTemplate'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'camelTemplate': Invocation of init method failed; nested
exception is java.lang.IllegalArgumentException: A CamelContext must be
injected!
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'camel:beanPostProcessor': Cannot resolve reference to bean
'camel' while setting bean property 'camelContext'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'camel': Invocation of init method failed; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'com.recondotech.service.eligibility.Service#0' defined in class
path resource [BaseService-context.xml]: Cannot resolve reference to bean
'benefitRequester' while setting bean property 'benefitRequester'; nested
exception is org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'benefitRequester' defined in class path resource
[BaseService-context.xml]: Cannot resolve reference to bean 'camelTemplate'
while setting bean property 'camelTemplate'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'camelTemplate': Invocation of init method failed; nested
exception is java.lang.IllegalArgumentException: A CamelContext must be
injected!
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275)
at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221)
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:881)
at
org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:606)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:366)
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:189)
at org.apache.camel.spring.Main.doStart(Main.java:152)
at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:47)
at org.apache.camel.util.MainSupport.run(MainSupport.java:121)
at org.apache.camel.util.MainSupport.run(MainSupport.java:310)
at org.apache.camel.spring.Main.main(Main.java:72)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:283)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'camel': Invocation of init method failed; nested
exception is org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'com.recondotech.service.eligibility.Service#0'
defined in class path resource [BaseService-context.xml]: Cannot resolve
reference to bean 'benefitRequester' while setting bean property
'benefitRequester'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'benefitRequester' defined in class path resource
[BaseService-context.xml]: Cannot resolve reference to bean 'camelTemplate'
while setting bean property 'camelTemplate'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'camelTemplate': Invocation of init method failed; nested
exception is java.lang.IllegalArgumentException: A CamelContext must be
injected!
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1337)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
--
View this message in context:
http://www.nabble.com/ProducerTemplate-inject-into-RouteBuilder-Problem-tp23927687p23927687.html
Sent from the Camel - Users mailing list archive at Nabble.com.