CAMEL-1066 and the underlying Spring issues indicate that you can't use the EL in the Camel XML DSL.
My example uses the EL through @Value annotations outside of the Camel Context. org.ektorp.spring.HttpClientFactoryBean has the @Value annotations with the EL referencing the property files in it. Thanks, Drew On Dec 24, 2010, at 2:23 AM, Willem Jiang <[email protected]> wrote: > Does the CouchDB driver configure work without the CamelContext element? > AFAIK the spring property holder can't work within CamelContext[1] > Not sure if the org.ektorp.spring.HttpClientFactoryBean has the spring > property holder. > > [1]https://issues.apache.org/jira/browse/CAMEL-1066 > > Willem > > On 12/24/10 1:24 AM, Drew Varner wrote: >> All, >> >> Has anyone had any luck using Ektorp's (CouchDB driver) Spring support in >> Camel? I am having some problems configuring Ektorp as a Spring service. >> Here is my Spring config: >> >> --snip-- >> <?xml version="1.0" encoding="UTF-8"?> >> <!-- Apache license text, blah blah blah ... --> >> >> <!-- Configures the Camel Context--> >> >> <beans xmlns="http://www.springframework.org/schema/beans" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xmlns:util="http://www.springframework.org/schema/util" >> xsi:schemaLocation=" >> http://www.springframework.org/schema/beans >> http://www.springframework.org/schema/beans/spring-beans-3.0.xsd >> http://camel.apache.org/schema/spring >> http://camel.apache.org/schema/spring/camel-spring.xsd >> http://www.springframework.org/schema/util >> http://www.springframework.org/schema/util/spring-util-3.0.xsd"> >> >> <util:properties id="couchdbProperties" >> location="classpath:couchdb.properties"/> >> >> <bean id="couchDbConnector" class="org.ektorp.impl.StdCouchDbConnector"> >> <constructor-arg value="customs" /> >> <constructor-arg> >> <bean id="couchDbInstance" >> class="org.ektorp.impl.StdCouchDbInstance"> >> <constructor-arg> >> <bean >> class="org.ektorp.spring.HttpClientFactoryBean" /> >> </constructor-arg> >> </bean> >> </constructor-arg> >> </bean> >> <camelContext xmlns="http://camel.apache.org/schema/spring"> >> <package>com.ninefx.customs.routes</package> >> </camelContext> >> </beans> >> --end snip-- >> >> I ripped off a standard couchdb.properties from the online examples and >> place it in /src/main/resources of my project, where it will be picked up in >> the classpath: >> >> --snip-- >> host=localhost >> port=5984 >> maxConnections=20 >> connectionTimeout=1000 >> socketTimeout=10000 >> --end snip-- >> >> When I try to run my Camel route (that relies on Ektorp in the Spring >> config) I get the following output from DEBUG logging: >> >> --snip-- >> [ main] MainSupport INFO Apache >> Camel 2.5.0 starting >> [ main] ClassPathXmlApplicationContext INFO >> Refreshing >> org.springframework.context.support.classpathxmlapplicationcont...@4a79717e: >> startup date [Tue Dec 21 12:20:13 EST 2010]; root of context hierarchy >> [ main] atchingResourcePatternResolver DEBUG >> Looking for matching resources in directory tree >> [/Users/varnerac/Documents/workspace/customs-processor/target/classes/META-INF/spring] >> [ main] atchingResourcePatternResolver DEBUG >> Searching directory >> [/Users/varnerac/Documents/workspace/customs-processor/target/classes/META-INF/spring] >> for files matching pattern >> [/Users/varnerac/Documents/workspace/customs-processor/target/classes/META-INF/spring/*.xml] >> [ main] atchingResourcePatternResolver DEBUG >> Resolved location pattern [META-INF/spring/*.xml] to resources [file >> [/Users/varnerac/Documents/workspace/customs-processor/target/classes/META-INF/spring/camel-context.xml]] >> [ main] XmlBeanDefinitionReader INFO >> Loading XML bean definitions from file >> [/Users/varnerac/Documents/workspace/customs-processor/target/classes/META-INF/spring/camel-context.xml] >> [ main] DefaultDocumentLoader DEBUG Using >> JAXP provider >> [com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl] >> [ main] PluggableSchemaResolver DEBUG >> Loading schema mappings from [META-INF/spring.schemas] >> [ main] PluggableSchemaResolver DEBUG Loaded >> schema mappings: >> {http://camel.apache.org/schema/osgi/camel-osgi.xsd=camel-osgi.xsd, >> http://www.springframework.org/schema/util/spring-util.xsd=org/springframework/beans/factory/xml/spring-util-3.0.xsd, >> >> http://camel.apache.org/schema/spring/camel-spring-2.0-M3.xsd=camel-spring.xsd, >> >> http://www.springframework.org/schema/task/spring-task.xsd=org/springframework/scheduling/config/spring-task-3.0.xsd, >> >> http://www.springframework.org/schema/aop/spring-aop-3.0.xsd=org/springframework/aop/config/spring-aop-3.0.xsd, >> >> http://www.springframework.org/schema/aop/spring-aop-2.0.xsd=org/springframework/aop/config/spring-aop-2.0.xsd, >> >> http://www.springframework.org/schema/tool/spring-tool-2.5.xsd=org/springframework/beans/factory/xml/spring-tool-2.5.xsd, >> http://camel.apache.org/schema/osgi/camel-osgi-2.0-M1.xsd=camel-osgi.xsd, >> http://www.springframework.org/schema/beans/spring-beans.xsd=org/springframework/beans/fac > tory/xml/spring-beans-3.0.xsd, > http://www.springframework.org/schema/jee/spring-jee-2.5.xsd=org/springframework/ejb/config/spring-jee-2.5.xsd, > > http://camel.apache.org/schema/spring/camel-spring-2.0.0.xsd=camel-spring.xsd, > > http://www.springframework.org/schema/aop/spring-aop.xsd=org/springframework/aop/config/spring-aop-3.0.xsd, > > http://camel.apache.org/schema/spring/camel-spring-2.2.0.xsd=camel-spring.xsd, > > http://camel.apache.org/schema/spring/camel-spring-2.4.0.xsd=camel-spring.xsd, > > http://camel.apache.org/schema/spring/camel-spring-2.0-M2.xsd=camel-spring.xsd, > > http://camel.apache.org/schema/spring/camel-spring-2.1.0.xsd=camel-spring.xsd, > > http://camel.apache.org/schema/spring/camel-spring-2.3.0.xsd=camel-spring.xsd, > > http://www.springframework.org/schema/beans/spring-beans-2.0.xsd=org/springframework/beans/factory/xml/spring-beans-2.0.xsd, > > http://camel.apache.org/schema/spring/camel-spring-2.5.0.xsd=camel-spring.xsd, > http://www.springframework.org/schema/beans/spring-beans-3.0 > .xsd=org/springframework/beans/factory/xml/spring-beans-3.0.xsd, > http://www.springframework.org/schema/task/spring-task-3.0.xsd=org/springframework/scheduling/config/spring-task-3.0.xsd, > http://camel.apache.org/schema/spring/camel-spring.xsd=camel-spring.xsd, > http://www.springframework.org/schema/tx/spring-tx-2.5.xsd=org/springframework/transaction/config/spring-tx-2.5.xsd, > > http://www.springframework.org/schema/context/spring-context-2.5.xsd=org/springframework/context/config/spring-context-2.5.xsd, > > http://www.springframework.org/schema/tool/spring-tool-3.0.xsd=org/springframework/beans/factory/xml/spring-tool-3.0.xsd, > > http://www.springframework.org/schema/tx/spring-tx.xsd=org/springframework/transaction/config/spring-tx-3.0.xsd, > > http://www.springframework.org/schema/lang/spring-lang.xsd=org/springframework/scripting/config/spring-lang-3.0.xsd, > > http://www.springframework.org/schema/util/spring-util-2.5.xsd=org/springframework/beans/factory/xml/spring-util-2.5.xsd, > http://www. > springframework.org/schema/tool/spring-tool-2.0.xsd=org/springframework/beans/factory/xml/spring-tool-2.0.xsd, > > http://www.springframework.org/schema/lang/spring-lang-2.5.xsd=org/springframework/scripting/config/spring-lang-2.5.xsd, > > http://www.springframework.org/schema/jee/spring-jee-3.0.xsd=org/springframework/ejb/config/spring-jee-3.0.xsd, > > http://www.springframework.org/schema/jee/spring-jee-2.0.xsd=org/springframework/ejb/config/spring-jee-2.0.xsd, > http://camel.apache.org/schema/osgi/camel-osgi-2.2.0.xsd=camel-osgi.xsd, > http://camel.apache.org/schema/spring/camel-spring-2.0-M1.xsd=camel-spring.xsd, > http://camel.apache.org/schema/osgi/camel-osgi-2.4.0.xsd=camel-osgi.xsd, > http://camel.apache.org/schema/osgi/camel-osgi-2.1.0.xsd=camel-osgi.xsd, > http://camel.apache.org/schema/spring=camel-spring.xsd, > http://camel.apache.org/schema/osgi/camel-osgi-2.3.0.xsd=camel-osgi.xsd, > http://camel.apache.org/schema/osgi/camel-osgi-2.0.0.xsd=camel-osgi.xsd, > http://camel.apache.org/schema/os > gi/camel-osgi-2.5.0.xsd=camel-osgi.xsd, > http://camel.apache.org/schema/osgi/camel-osgi-2.0-M3.xsd=camel-osgi.xsd, > http://www.springframework.org/schema/context/spring-context.xsd=org/springframework/context/config/spring-context-3.0.xsd, > > http://www.springframework.org/schema/jee/spring-jee.xsd=org/springframework/ejb/config/spring-jee-3.0.xsd, > > http://www.springframework.org/schema/aop/spring-aop-2.5.xsd=org/springframework/aop/config/spring-aop-2.5.xsd, > > http://www.springframework.org/schema/tx/spring-tx-2.0.xsd=org/springframework/transaction/config/spring-tx-2.0.xsd, > > http://www.springframework.org/schema/tx/spring-tx-3.0.xsd=org/springframework/transaction/config/spring-tx-3.0.xsd, > > http://www.springframework.org/schema/context/spring-context-3.0.xsd=org/springframework/context/config/spring-context-3.0.xsd, > > http://www.springframework.org/schema/tool/spring-tool.xsd=org/springframework/beans/factory/xml/spring-tool-3.0.xsd, > http://www.springframework.org/schema/util/spring-ut > il-3.0.xsd=org/springframework/beans/factory/xml/spring-util-3.0.xsd, > http://www.springframework.org/schema/lang/spring-lang-3.0.xsd=org/springframework/scripting/config/spring-lang-3.0.xsd, > > http://www.springframework.org/schema/util/spring-util-2.0.xsd=org/springframework/beans/factory/xml/spring-util-2.0.xsd, > > http://www.springframework.org/schema/lang/spring-lang-2.0.xsd=org/springframework/scripting/config/spring-lang-2.0.xsd, > http://camel.apache.org/schema/osgi/camel-osgi-2.0-M2.xsd=camel-osgi.xsd, > http://camel.apache.org/schema/spring/v2.5=camel-spring-v2.5.xsd, > http://www.springframework.org/schema/beans/spring-beans-2.5.xsd=org/springframework/beans/factory/xml/spring-beans-2.5.xsd} >> [ main] PluggableSchemaResolver DEBUG Found >> XML schema >> [http://www.springframework.org/schema/beans/spring-beans-3.0.xsd] in >> classpath: org/springframework/beans/factory/xml/spring-beans-3.0.xsd >> [ main] PluggableSchemaResolver DEBUG Found >> XML schema [http://www.springframework.org/schema/util/spring-util-3.0.xsd] >> in classpath: org/springframework/beans/factory/xml/spring-util-3.0.xsd >> [ main] PluggableSchemaResolver DEBUG Found >> XML schema [http://www.springframework.org/schema/tool/spring-tool-3.0.xsd] >> in classpath: org/springframework/beans/factory/xml/spring-tool-3.0.xsd >> [ main] PluggableSchemaResolver DEBUG Found >> XML schema [http://camel.apache.org/schema/spring/camel-spring.xsd] in >> classpath: camel-spring.xsd >> [ main] ltBeanDefinitionDocumentReader DEBUG >> Loading bean definitions >> [ main] efaultNamespaceHandlerResolver DEBUG Loaded >> NamespaceHandler mappings: >> {http://www.springframework.org/schema/p=org.springframework.beans.factory.xml.SimplePropertyNamespaceHandler, >> >> http://www.springframework.org/schema/util=org.springframework.beans.factory.xml.UtilNamespaceHandler, >> >> http://camel.apache.org/schema/spring/v2.5=org.apache.camel.spring.handler.CamelNamespaceHandler, >> >> http://www.springframework.org/schema/jee=org.springframework.ejb.config.JeeNamespaceHandler, >> >> http://www.springframework.org/schema/aop=org.springframework.aop.config.AopNamespaceHandler, >> >> http://camel.apache.org/schema/osgi=org.apache.camel.osgi.CamelNamespaceHandler, >> >> http://www.springframework.org/schema/tx=org.springframework.transaction.config.TxNamespaceHandler, >> >> http://camel.apache.org/schema/spring=org.apache.camel.spring.handler.CamelNamespaceHandler, >> >> http://www.springframework.org/schema/task=org.springframework.scheduling.config.TaskNamespaceHandler, >> http:// > www.springframework.org/schema/lang=org.springframework.scripting.config.LangNamespaceHandler, > > http://www.springframework.org/schema/context=org.springframework.context.config.ContextNamespaceHandler} >> [ main] BeanDefinitionParserDelegate DEBUG >> Neither XML 'id' nor 'name' specified - using generated bean name >> [org.ektorp.spring.HttpClientFactoryBean#48a77106] >> [ main] CamelNamespaceHandler INFO OSGi >> environment not detected. >> [ main] CamelNamespaceHandler DEBUG Using >> org.apache.camel.spring.CamelContextFactoryBean as >> CamelContextBeanDefinitionParser >> [ main] CamelNamespaceHandler DEBUG >> Registered default: org.apache.camel.spring.CamelProducerTemplateFactoryBean >> with id: template on camel context: camel-1 >> [ main] CamelNamespaceHandler DEBUG >> Registered default: org.apache.camel.spring.CamelConsumerTemplateFactoryBean >> with id: consumerTemplate on camel context: camel-1 >> [ main] XmlBeanDefinitionReader DEBUG Loaded >> 6 bean definitions from location pattern [META-INF/spring/*.xml] >> [ main] ClassPathXmlApplicationContext DEBUG Bean >> factory for >> org.springframework.context.support.classpathxmlapplicationcont...@4a79717e: >> org.springframework.beans.factory.support.defaultlistablebeanfact...@3dbe8711: >> defining beans >> [couchdbProperties,couchDbConnector,template,consumerTemplate,camel-1:beanPostProcessor,camel-1]; >> root of factory hierarchy >> [ main] DefaultListableBeanFactory DEBUG >> Creating shared instance of singleton bean 'camel-1:beanPostProcessor' >> [ main] DefaultListableBeanFactory DEBUG >> Creating instance of bean 'camel-1:beanPostProcessor' >> [ main] DefaultListableBeanFactory DEBUG >> Eagerly caching bean 'camel-1:beanPostProcessor' to allow for resolving >> potential circular references >> [ main] DefaultListableBeanFactory DEBUG >> Finished creating instance of bean 'camel-1:beanPostProcessor' >> [ main] ClassPathXmlApplicationContext DEBUG Unable >> to locate MessageSource with name 'messageSource': using default >> [org.springframework.context.support.delegatingmessagesou...@3488b1e6] >> [ main] ClassPathXmlApplicationContext DEBUG Unable >> to locate ApplicationEventMulticaster with name >> 'applicationEventMulticaster': using default >> [org.springframework.context.event.simpleapplicationeventmulticas...@2598c6f3] >> [ main] DefaultListableBeanFactory INFO >> Pre-instantiating singletons in >> org.springframework.beans.factory.support.defaultlistablebeanfact...@3dbe8711: >> defining beans >> [couchdbProperties,couchDbConnector,template,consumerTemplate,camel-1:beanPostProcessor,camel-1]; >> root of factory hierarchy >> [ main] DefaultListableBeanFactory DEBUG >> Creating shared instance of singleton bean 'couchdbProperties' >> [ main] DefaultListableBeanFactory DEBUG >> Creating instance of bean 'couchdbProperties' >> [ main] DefaultListableBeanFactory DEBUG >> Eagerly caching bean 'couchdbProperties' to allow for resolving potential >> circular references >> [ main] DefaultListableBeanFactory DEBUG >> Creating shared instance of singleton bean 'camel-1' >> [ main] DefaultListableBeanFactory DEBUG >> Creating instance of bean 'camel-1' >> [ main] DefaultListableBeanFactory DEBUG >> Eagerly caching bean 'camel-1' to allow for resolving potential circular >> references >> [ main] DefaultListableBeanFactory DEBUG >> Returning cached instance of singleton bean 'camel-1:beanPostProcessor' >> [ main] DefaultListableBeanFactory DEBUG >> Returning eagerly cached instance of singleton bean 'camel-1' that is not >> fully initialized yet - a consequence of a circular reference >> [ main] SpringCamelContext DEBUG Set >> the application context classloader to: >> sun.misc.launcher$appclassloa...@6d6f0472 >> [ main] DefaultListableBeanFactory DEBUG >> Invoking afterPropertiesSet() on bean with name 'camel-1' >> [ main] DefaultListableBeanFactory DEBUG >> Returning eagerly cached instance of singleton bean 'couchdbProperties' that >> is not fully initialized yet - a consequence of a circular reference >> [ main] DefaultTypeConverter DEBUG >> Loading type converters ... >> [ main] AnnotationTypeConverterLoader INFO >> Loading file META-INF/services/org/apache/camel/TypeConverter to retrieve >> list of packages, from url: >> jar:file:/Users/varnerac/.m2/repository/org/apache/camel/camel-core/2.5.0/camel-core-2.5.0.jar!/META-INF/services/org/apache/camel/TypeConverter >> [ main] AnnotationTypeConverterLoader INFO >> Loading file META-INF/services/org/apache/camel/TypeConverter to retrieve >> list of packages, from url: >> jar:file:/Users/varnerac/.m2/repository/org/apache/camel/camel-mail/2.5.0/camel-mail-2.5.0.jar!/META-INF/services/org/apache/camel/TypeConverter >> [ main] efaultPackageScanClassResolver DEBUG >> Searching for annotations of org.apache.camel.Converter in packages: >> [org.apache.camel.component.file, org.apache.camel.component.bean, >> org.apache.camel.converter, org.apache.camel.component.mail] >> [ main] efaultPackageScanClassResolver DEBUG Found: >> [class org.apache.camel.component.file.GenericFileConverter, class >> org.apache.camel.component.bean.BeanConverter, class >> org.apache.camel.converter.CamelConverter, class >> org.apache.camel.converter.CollectionConverter, class >> org.apache.camel.converter.IOConverter, class >> org.apache.camel.converter.NIOConverter, class >> org.apache.camel.converter.ObjectConverter, class >> org.apache.camel.converter.TimePatternConverter, class >> org.apache.camel.converter.jaxp.DomConverter, class >> org.apache.camel.converter.jaxp.StaxConverter, class >> org.apache.camel.converter.jaxp.StreamSourceConverter, class >> org.apache.camel.converter.jaxp.XmlConverter, class >> org.apache.camel.converter.stream.StreamCacheConverter, class >> org.apache.camel.component.mail.MailConverters] >> [ main] AnnotationTypeConverterLoader INFO Found >> 4 packages with 14 @Converter classes to load >> [ main] AnnotationTypeConverterLoader DEBUG >> Loading converter class: org.apache.camel.component.file.GenericFileConverter >> [ main] AnnotationTypeConverterLoader DEBUG >> Loading converter class: org.apache.camel.component.bean.BeanConverter >> [ main] AnnotationTypeConverterLoader DEBUG >> Loading converter class: org.apache.camel.converter.CamelConverter >> [ main] AnnotationTypeConverterLoader DEBUG >> Loading converters class: org.apache.camel.converter.CollectionConverter >> [ main] AnnotationTypeConverterLoader DEBUG >> Loading converter class: org.apache.camel.converter.IOConverter >> [ main] AnnotationTypeConverterLoader DEBUG >> Loading converter class: org.apache.camel.converter.NIOConverter >> [ main] AnnotationTypeConverterLoader DEBUG >> Loading converter class: org.apache.camel.converter.ObjectConverter >> [ main] AnnotationTypeConverterLoader DEBUG >> Loading converter class: org.apache.camel.converter.TimePatternConverter >> [ main] AnnotationTypeConverterLoader DEBUG >> Loading converter class: org.apache.camel.converter.jaxp.DomConverter >> [ main] AnnotationTypeConverterLoader DEBUG >> Loading converter class: org.apache.camel.converter.jaxp.StaxConverter >> [ main] AnnotationTypeConverterLoader DEBUG >> Loading converter class: >> org.apache.camel.converter.jaxp.StreamSourceConverter >> [ main] AnnotationTypeConverterLoader DEBUG >> Loading converter class: org.apache.camel.converter.jaxp.XmlConverter >> [ main] AnnotationTypeConverterLoader DEBUG >> Loading converter class: >> org.apache.camel.converter.stream.StreamCacheConverter >> [ main] AnnotationTypeConverterLoader DEBUG >> Loading converter class: org.apache.camel.component.mail.MailConverters >> [ main] DefaultTypeConverter DEBUG >> Loading type converters done >> [ main] DefaultTypeConverter INFO Loaded >> 150 type converters in 0.697 seconds >> [ main] bstractCamelContextFactoryBean DEBUG Found >> JAXB created routes: [] >> [ main] efaultPackageScanClassResolver DEBUG >> Searching for implementations of org.apache.camel.RoutesBuilder in packages: >> [com.ninefx.customs.routes] >> [ main] efaultPackageScanClassResolver DEBUG Found: >> [class com.ninefx.customs.routes.IncomingEmailCustomsRequestRouteBuilder] >> [ main] DefaultListableBeanFactory DEBUG >> Creating instance of bean >> 'com.ninefx.customs.routes.IncomingEmailCustomsRequestRouteBuilder' >> [ main] DefaultListableBeanFactory DEBUG >> Finished creating instance of bean >> 'com.ninefx.customs.routes.IncomingEmailCustomsRequestRouteBuilder' >> [ main] PackageScanRouteBuilderFinder DEBUG Adding >> instantiated RouteBuilder: Routes: [] >> [ main] DefaultCamelContext DEBUG Adding >> routes from builder: Routes: [] >> [ main] DefaultListableBeanFactory DEBUG >> Finished creating instance of bean 'camel-1' >> [ main] DefaultListableBeanFactory DEBUG >> Invoking afterPropertiesSet() on bean with name 'couchdbProperties' >> [ main] PropertiesFactoryBean INFO >> Loading properties file from class path resource [couchdb.properties] >> [ main] DefaultListableBeanFactory DEBUG >> Finished creating instance of bean 'couchdbProperties' >> [ main] DefaultListableBeanFactory DEBUG >> Creating shared instance of singleton bean 'couchDbConnector' >> [ main] DefaultListableBeanFactory DEBUG >> Creating instance of bean 'couchDbConnector' >> [ main] DefaultListableBeanFactory DEBUG >> Creating instance of bean 'couchDbInstance' >> [ main] DefaultListableBeanFactory DEBUG >> Creating instance of bean 'org.ektorp.spring.HttpClientFactoryBean#48a77106' >> [ main] DefaultListableBeanFactory DEBUG >> Finished creating instance of bean >> 'org.ektorp.spring.HttpClientFactoryBean#48a77106' >> [ main] HttpClientFactoryBean DEBUG host: >> null >> [ main] HttpClientFactoryBean DEBUG port: 0 >> [ main] HttpClientFactoryBean DEBUG >> maxConnections: 0 >> [ main] HttpClientFactoryBean DEBUG >> connectionTimeout: 1000 >> [ main] HttpClientFactoryBean DEBUG >> socketTimeout: 10000 >> [ main] DefaultListableBeanFactory INFO >> Destroying singletons in >> org.springframework.beans.factory.support.defaultlistablebeanfact...@3dbe8711: >> defining beans >> [couchdbProperties,couchDbConnector,template,consumerTemplate,camel-1:beanPostProcessor,camel-1]; >> root of factory hierarchy >> [ main] DisposableBeanAdapter DEBUG >> Invoking destroy() on bean with name 'camel-1' >> [ main] DefaultCamelContext INFO Apache >> Camel 2.5.0 (CamelContext:camel-1) is shutting down >> [ main] DefaultCamelContext INFO JMX >> enabled. Using ManagedManagementStrategy. >> [ main] DefaultShutdownStrategy INFO >> Starting to graceful shutdown 0 routes (timeout 300 seconds) >> [ main] DefaultExecutorServiceStrategy DEBUG >> Created new single thread pool for source: >> org.apache.camel.impl.defaultshutdownstrat...@57f7cdc7 with name: >> ShutdownTask. -> >> java.util.concurrent.executors$finalizabledelegatedexecutorserv...@4de6f0ef >> [ Camel Thread 0 - ShutdownTask] DefaultShutdownStrategy DEBUG There >> are 0 routes to shutdown >> [ main] DefaultShutdownStrategy INFO >> Graceful shutdown of 0 routes completed in 0 seconds >> [ main] DefaultCamelContext INFO >> Uptime: not started >> [ main] DefaultCamelContext INFO Apache >> Camel 2.5.0 (CamelContext: camel-1) is shutdown in 0.110 seconds >> [ main] MainSupport INFO Apache >> Camel 2.5.0 stopping >> Exception in thread "main" >> org.springframework.beans.factory.BeanCreationException: Error creating bean >> with name 'couchDbConnector' defined in file >> [/Users/varnerac/Documents/workspace/customs-processor/target/classes/META-INF/spring/camel-context.xml]: >> Cannot create inner bean 'couchDbInstance' of type >> [org.ektorp.impl.StdCouchDbInstance] while setting constructor argument; >> nested exception is org.springframework.beans.factory.BeanCreationException: >> Error creating bean with name 'couchDbInstance' defined in file >> [/Users/varnerac/Documents/workspace/customs-processor/target/classes/META-INF/spring/camel-context.xml]: >> Cannot create inner bean 'org.ektorp.spring.HttpClientFactoryBean#48a77106' >> of type [org.ektorp.spring.HttpClientFactoryBean] while setting constructor >> argument; nested exception is >> org.springframework.beans.factory.BeanCreationException: Error creating bean >> with name 'org.ektorp.spring.HttpClientFactoryBean#48a77106': FactoryBean >> threw exception on object cre > ation; nested exception is java.lang.IllegalArgumentException: Host name may > not be null >> at >> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:281) >> at >> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:120) >> at >> org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:630) >> at >> org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148) >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003) >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907) >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485) >> 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:580) >> 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) >> at >> com.ninefx.customs.routes.IncomingEmailCustomsRequestRouteBuilder.main(IncomingEmailCustomsRequestRouteBuilder.java:21) >> Caused by: org.springframework.beans.factory.BeanCreationException: Error >> creating bean with name 'couchDbInstance' defined in file >> [/Users/varnerac/Documents/workspace/customs-processor/target/classes/META-INF/spring/camel-context.xml]: >> Cannot create inner bean 'org.ektorp.spring.HttpClientFactoryBean#48a77106' >> of type [org.ektorp.spring.HttpClientFactoryBean] while setting constructor >> argument; nested exception is >> org.springframework.beans.factory.BeanCreationException: Error creating bean >> with name 'org.ektorp.spring.HttpClientFactoryBean#48a77106': FactoryBean >> threw exception on object creation; nested exception is >> java.lang.IllegalArgumentException: Host name may not be null >> at >> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:281) >> at >> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:120) >> at >> org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:630) >> at >> org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148) >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003) >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907) >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485) >> at >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) >> at >> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:270) >> ... 24 more >> Caused by: org.springframework.beans.factory.BeanCreationException: Error >> creating bean with name 'org.ektorp.spring.HttpClientFactoryBean#48a77106': >> FactoryBean threw exception on object creation; nested exception is >> java.lang.IllegalArgumentException: Host name may not be null >> at >> org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:149) >> at >> org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:109) >> at >> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:274) >> ... 32 more >> Caused by: java.lang.IllegalArgumentException: Host name may not be null >> at org.apache.http.HttpHost.<init>(HttpHost.java:83) >> at >> org.ektorp.http.StdHttpClient$Builder.configureClient(StdHttpClient.java:147) >> at org.ektorp.http.StdHttpClient$Builder.build(StdHttpClient.java:199) >> at >> org.ektorp.spring.HttpClientFactoryBean.getObject(HttpClientFactoryBean.java:39) >> at >> org.ektorp.spring.HttpClientFactoryBean.getObject(HttpClientFactoryBean.java:19) >> at >> org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142) >> ... 34 more >> [ Thread-1] Main$HangupInterceptor INFO >> Received hang up - stopping the main instance. >> --end snip-- >> >> Here's what I think has happened: >> >> The HttpClientFactoryBean is not using the information from >> couchdb.properties correctly through Builder.: >> [ main] HttpClientFactoryBean DEBUG host: >> null >> [ main] HttpClientFactoryBean DEBUG port: 0 >> [ main] HttpClientFactoryBean DEBUG >> maxConnections: 0 >> [ main] HttpClientFactoryBean DEBUG >> connectionTimeout: 1000 >> [ main] HttpClientFactoryBean DEBUG >> socketTimeout: 10000 >> >> Spring is reading the coucdhb.properties file from the classpath: >> [ main] PropertiesFactoryBean INFO >> Loading properties file from class path resource [couchdb.properties] >> >> Is there any Camel magic in the Spring context that would interfere with my >> ability to use util:properties correctly? Similar configurations in the >> Ektorp examples work in vanilla Spring contexts. >> >> Thanks, >> Drew > > > -- > Willem > ---------------------------------- > FuseSource > Web: http://www.fusesource.com > Blog: http://willemjiang.blogspot.com (English) > http://jnn.javaeye.com (Chinese) > Twitter: willemjiang
