See attached trace, thanks. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.cxf.bus.spring.BusApplicationListener' defined in OSGi resource[classpath:META-INF/cxf/cxf.xml|bnd.id=192|bnd.sym=kimono-processor-bundle]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'camelContext': Invocation of init method failed; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.tempuri.MyAggregationStrategy] for bean with name 'myAggregatorStrategy' defined in URL [bundleentry://192.fwk5195164/META-INF/spring/camel-context.xml]; nested exception is java.lang.ClassNotFoundException: org.tempuri.MyAggregationStrategy not found from bundle [kimono-processor-bundle] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480) 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:222) 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.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:308) at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:947) at org.springframework.context.support.AbstractApplicationContext.registerListeners(AbstractApplicationContext.java:701) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$1500(AbstractDelegatedExecutionApplicationContext.java:69) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:351) at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320) at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:136) at java.lang.Thread.run(Thread.java:595) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'camelContext': Invocation of init method failed; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.tempuri.MyAggregationStrategy] for bean with name 'myAggregatorStrategy' defined in URL [bundleentry://192.fwk5195164/META-INF/spring/camel-context.xml]; nested exception is java.lang.ClassNotFoundException: org.tempuri.MyAggregationStrategy not found from bundle [kimono-processor-bundle] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) 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:222) 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:880) at org.apache.camel.spring.CamelBeanPostProcessor.postProcessBeforeInitialization(CamelBeanPostProcessor.java:88) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:350) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1331) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) ... 17 more Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.tempuri.MyAggregationStrategy] for bean with name 'myAggregatorStrategy' defined in URL [bundleentry://192.fwk5195164/META-INF/spring/camel-context.xml]; nested exception is java.lang.ClassNotFoundException: org.tempuri.MyAggregationStrategy not found from bundle [kimono-processor-bundle] at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1141) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:524) at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1177) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:222) at org.springframework.context.support.AbstractApplicationContext.getBeanNamesForType(AbstractApplicationContext.java:937) at org.apache.camel.spring.CamelContextFactoryBean.getBeanForType(CamelContextFactoryBean.java:539) at org.apache.camel.spring.CamelContextFactoryBean.afterPropertiesSet(CamelContextFactoryBean.java:185) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335) ... 31 more Caused by: java.lang.ClassNotFoundException: org.tempuri.MyAggregationStrategy not found from bundle [kimono-processor-bundle] at org.springframework.osgi.util.BundleDelegatingClassLoader.findClass(BundleDelegatingClassLoader.java:103) at org.springframework.osgi.util.BundleDelegatingClassLoader.loadClass(BundleDelegatingClassLoader.java:156) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at org.springframework.util.ClassUtils.forName(ClassUtils.java:211) at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:385) at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1138) ... 39 more Caused by: java.lang.ClassNotFoundException: org.tempuri.MyAggregationStrategy at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:448) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:326) at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:231) at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1193) at org.springframework.osgi.util.BundleDelegatingClassLoader.findClass(BundleDelegatingClassLoader.java:99) ... 44 more 15:14:36,952 | INFO | heckpoint Worker | MessageDatabase | emq.store.kahadb.MessageDatabase 605 | Slow KahaDB access: cleanup took 561
Stephen Gargan wrote: > > Hmm, You probably do export it's package correctly in the manifest, > though I know I've often forgotten to, is it correct? Could you post > the exception trace so we can have a look? > > > On Fri, Jan 15, 2010 at 6:46 AM, lekkie <lekkie.ay...@gmail.com> wrote: >> >> Thanks Stephen. >> >> I followed your sample snippet below. >> >> The wiretap was a success, however, I couldnt get through with the >> aggregator. >> >> It kept complaining class not found for my custom aggregator. See sample >> snippet below: >> >> <osgi:camelContext xmlns="http://camel.apache.org/schema/spring" >> trace="true"> >> >> <package>org.tempuri</package> >> >> <route> >> <from uri="nmr:RequestProcessor" /> >> <wireTap uri="direct:ProcessorServices"/> >> <!-- <to uri="log:TerminalManagerRequest"/>--> >> <to >> uri="nmr:{http://services.locator/}ServicesService:ServicesPort"/> >> <to uri="direct:ProcessorServices"/> >> </route> >> >> <route> >> <from uri="direct:ProcessorServices" /> >> <aggregate strategyRef="myAggregatorStrategy" batchSize="2"> >> <correlationExpression> >> <constant>true</constant> >> </correlationExpression> >> <to uri="log:Response"/> >> </aggregate> >> </route> >> >> </osgi:camelContext> >> >> <bean id="myAggregatorStrategy" >> class="org.tempuri.MyAggregationStrategy"/> >> >> </beans> >> >> >> >> I have the ffg in my project >> >> src/main/java/org/tempuri/MyAggregationStrategy.java >> src/main/resources/META-INF/spring/camel-context.xml >> >> And I can confirm the class is compiled with the bundle deployed. >> >> Any ideas? >> >> >> >> >> Stephen Gargan wrote: >>> >>> Hi, >>> >>> You can use Wiretaps and an aggregator to do what you're suggesting. >>> At each step that you want an intermediate result to be available, >>> wiretap it off to an aggregator and set the batch size of the >>> aggregator accordingly. >>> >>> from("direct:consumerEndpoint").wireTap("direct:aggregator").to("direct:requestToSomeEndpointTransformer").to( >>> "direct:someEndpoint").to("direct:aggregator"); >>> >>> from("direct:aggregator").aggregate().header("id").batchSize(2).groupExchanges().to("mock:result"); >>> >>> One thing to note is that groupExchanges() will gather up all the >>> aggregated exchanges and store them in a property in the exchange. You >>> get at them via >>> >>> List<Exchange> grouped = e.getProperty(Exchange.GROUPED_EXCHANGE, >>> List.class); >>> >>> You'll need to write a custom processor (in place of the mock) to >>> combine/transform them to your liking as before responding. You can >>> find a bunch of info about aggregators here >>> >>> http://camel.apache.org/aggregator.html >>> >>> ste. >>> >>> On Thu, Jan 14, 2010 at 12:12 AM, lekkie <lekkie.ay...@gmail.com> wrote: >>>> >>>> Hi guys, >>>> >>>> >>>> Just a quick one. I have this scenario where I 'd like to manipulate a >>>> request and some reponse from an endpoint. The flow below describe what >>>> I >>>> am >>>> trying to achieve: >>>> >>>> <osgi:camelContext xmlns="http://camel.apache.org/schema/spring" >>>> trace="true"> >>>> <route> >>>> <from uri="nmr:consumerEndpoint"/> >>>> <to uri="xslt:requestToSomeEndpoint.xsl"/> >>>> <to uri="nmr:someEndpoint"/> >>>> <to uri="xslt:requestToAnotherEndpoint.xsl"/> >>>> <to uri="nmr:anotherEndpoint"/> >>>> </route> >>>> </camelcontext> >>>> >>>> I'd like the transformation (requestToAnotherEndpoint.xsl) to be able >>>> to >>>> access/manipulate the original request message from >>>> nmr:consumerEndpoint >>>> and >>>> the response from nmr:someEndpoint in order to product its output. >>>> >>>> Is this scenario possible? >>>> >>>> -- >>>> View this message in context: >>>> http://old.nabble.com/Request-message-accessibility-manipulation-tp27157259p27157259.html >>>> Sent from the Camel - Users mailing list archive at Nabble.com. >>>> >>>> >>> >>> >> >> -- >> View this message in context: >> http://old.nabble.com/Request-message-accessibility-manipulation-tp27157259p27178135.html >> Sent from the Camel - Users mailing list archive at Nabble.com. >> >> > > -- View this message in context: http://old.nabble.com/Request-message-accessibility-manipulation-tp27157259p27181118.html Sent from the Camel - Users mailing list archive at Nabble.com.