Stupid observation, did you check that environment variables are initialized ?
Il 12 aprile 2012 16:40, Christian Schneider <[email protected]> ha scritto: > Hi All, > > i have camel route in a OSGi bundle. On one machine where we have maven repo > access and install via a feature it works nicely. On the other machine we > get an exception. > org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to > intialize bean .camelBlueprint.factory.camelContext > Caused by: java.lang.IllegalArgumentException: connectionFactory must be > specified > > The strange thing is that we inject the connectionFactory into the > JmsConfiguration. As the blueprint context below shows. There is one thing > we did a bit unorthodox. As the IBM MQ driver did not work as a bundle > we inlined it into our bundle. > > Any ideas ? > > Christian > > ---- > > 2012-04-11 14:54:11,093 | ERROR | rint Extender: 2 | BlueprintContainerImpl > | container.BlueprintContainerImpl 358 | 9 - > org.apache.aries.blueprint - 0.3.1 | Unable to start blueprint container for > bundle dispatcher > org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to > intialize bean .camelBlueprint.factory.camelContext > at > org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:638)[9:org.apache.aries.blueprint:0.3.1] > at > org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:724)[9:org.apache.aries.blueprint:0.3.1] > at > org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[9:org.apache.aries.blueprint:0.3.1] > at > org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)[9:org.apache.aries.blueprint:0.3.1] > at > org.apache.aries.blueprint.container.BlueprintRepository.createInstance(BlueprintRepository.java:198)[9:org.apache.aries.blueprint:0.3.1] > at > org.apache.aries.blueprint.container.BlueprintRepository.create(BlueprintRepository.java:137)[9:org.apache.aries.blueprint:0.3.1] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.getComponentInstance(BlueprintContainerImpl.java:718)[9:org.apache.aries.blueprint:0.3.1] > at > org.apache.camel.blueprint.handler.CamelNamespaceHandler$CamelDependenciesFinder.process(CamelNamespaceHandler.java:619)[172:org.apache.camel.camel-blueprint:2.8.4] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.processProcessors(BlueprintContainerImpl.java:495)[9:org.apache.aries.blueprint:0.3.1] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:314)[9:org.apache.aries.blueprint:0.3.1] > at > org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:227)[9:org.apache.aries.blueprint:0.3.1] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_18] > at > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_18] > at > java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_18] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)[:1.6.0_18] > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)[:1.6.0_18] > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_18] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_18] > at java.lang.Thread.run(Thread.java:619)[:1.6.0_18] > Caused by: java.lang.IllegalArgumentException: connectionFactory must be > specified > at org.apache.camel.util.ObjectHelper.notNull(ObjectHelper.java:278) > at > org.apache.camel.component.jms.JmsConfiguration.createConnectionFactory(JmsConfiguration.java:1015) > at > org.apache.camel.component.jms.JmsConfiguration.getConnectionFactory(JmsConfiguration.java:396) > at > org.apache.camel.component.jms.JmsConfiguration.createListenerConnectionFactory(JmsConfiguration.java:1024) > at > org.apache.camel.component.jms.JmsConfiguration.getListenerConnectionFactory(JmsConfiguration.java:415) > at > org.apache.camel.component.jms.JmsConfiguration.configureMessageListenerContainer(JmsConfiguration.java:854) > at > org.apache.camel.component.jms.JmsConfiguration.createMessageListenerContainer(JmsConfiguration.java:368) > at > org.apache.camel.component.jms.JmsEndpoint.createMessageListenerContainer(JmsEndpoint.java:166) > at > org.apache.camel.component.jms.JmsEndpoint.createConsumer(JmsEndpoint.java:161) > at > org.apache.camel.component.jms.JmsEndpoint.createConsumer(JmsEndpoint.java:72) > at > org.apache.camel.impl.EventDrivenConsumerRoute.addServices(EventDrivenConsumerRoute.java:61) > at > org.apache.camel.impl.DefaultRoute.onStartingServices(DefaultRoute.java:75) > at org.apache.camel.impl.RouteService.warmUp(RouteService.java:131) > at > org.apache.camel.impl.DefaultCamelContext.doWarmUpRoutes(DefaultCamelContext.java:1873) > at > org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:1801) > at > org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:1823) > at > org.apache.camel.impl.DefaultCamelContext.startRouteService(DefaultCamelContext.java:1705) > at > org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:699) > at > org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1681) > at > org.apache.camel.impl.DefaultCamelContext.addRouteDefinitions(DefaultCamelContext.java:641) > at > org.apache.camel.builder.RouteBuilder.populateRoutes(RouteBuilder.java:337) > at > org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:265) > at > dispatcher.DispatcherRouteFactory.addRoutesToCamelContext(DispatcherRouteFactory.java:24) > at > org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelContext.java:603) > at > org.apache.camel.core.xml.AbstractCamelContextFactoryBean.installRoutes(AbstractCamelContextFactoryBean.java:626) > at > org.apache.camel.core.xml.AbstractCamelContextFactoryBean.afterPropertiesSet(AbstractCamelContextFactoryBean.java:306) > at > org.apache.camel.blueprint.CamelContextFactoryBean.afterPropertiesSet(CamelContextFactoryBean.java:263) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method)[:1.6.0_18] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[:1.6.0_18] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_18] > at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_18] > at > org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:226)[9:org.apache.aries.blueprint:0.3.1] > at > org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:824)[9:org.apache.aries.blueprint:0.3.1] > at > org.apache.aries.blueprint.container.BeanRecipe.runBeanProcInit(BeanRecipe.java:636)[9:org.apache.aries.blueprint:0.3.1] > ... 18 more > ---- > > > Below you find the slighty edited blueprint context > --- > <?xml version="1.0" encoding="UTF-8"?> > <blueprint default-activation="eager" > xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.0.0" > xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0" > xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0" > xsi:schemaLocation=" > http://www.osgi.org/xmlns/blueprint/v1.0.0 > http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd > http://www.osgi.org/xmlns/blueprint-ext/v1.1.0 > https://svn.apache.org/repos/asf/aries/tags/blueprint-0.3.1/blueprint-core/src/main/resources/org/apache/aries/blueprint/ext/blueprint-ext.xsd > http://cxf.apache.org/blueprint/jaxws > http://cxf.apache.org/schemas/blueprint/jaxws.xsd > http://cxf.apache.org/blueprint/jaxrs > http://cxf.apache.org/schemas/blueprint/jaxrs.xsd > http://cxf.apache.org/blueprint/core > http://cxf.apache.org/schemas/blueprint/core.xsd > http://camel.apache.org/schema/blueprint > http://camel.apache.org/schema/blueprint/camel-blueprint.xsd > "> > > <cm:property-placeholder persistent-id="myconfig" update-strategy="reload"> > </cm:property-placeholder> > > <bean id="MqConnectionFactory" > class="com.ibm.mq.jms.MQQueueConnectionFactory"> > <property name="hostName" value="${jms.hostName}" /> > <property name="port" value="${jms.port}" /> > <property name="queueManager" value="${jms.queueManager}" /> > <property name="transportType" value="1" /> > </bean> > > <bean id="connectionFactory" > class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter"> > <property name="username" value="${jms.username}"/> > <property name="password" value="${jms.password}"/> > <property name="targetConnectionFactory" ref="MqConnectionFactory"/> > </bean> > > <reference id="entityManagerFactory" > interface="javax.persistence.EntityManagerFactory" > filter="(osgi.unit.name=dispatcher)" /> > > <bean id="dbService" class="...DbService"> > <property name="entityManagerFactory" ref="entityManagerFactory" /> > </bean> > > <bean id="dispatcherRoutes" class="dispatcher.DispatcherRoute"> > </bean> > > <bean id="transactionManager" > class="org.springframework.jms.connection.JmsTransactionManager"> > <property name="connectionFactory" ref="connectionFactory" /> > </bean> > > <bean id="jms" class="org.apache.camel.component.jms.JmsComponent"> > <property name="configuration" ref="jmsConfiguration" /> > <property name="transactionManager" ref="transactionManager" /> > </bean> > > <bean id="jmsConfiguration" > class="org.apache.camel.component.jms.JmsConfiguration"> > <property name="connectionFactory" ref="connectionFactory" /> > </bean> > > <camelContext id="camelContext" trace="true" > xmlns="http://camel.apache.org/schema/blueprint"> > <routeBuilder ref="dispatcherRoutes" /> > </camelContext> > > </blueprint> > > -- > Christian Schneider > http://www.liquid-reality.de > > Open Source Architect > Talend Application Integration Division http://www.talend.com >
