Hi,

I just find the error's bundle name is kimono-processor-bundle.

Caused by: java.lang.ClassNotFoundException:
org.tempuri.MyAggregationStrategy not found from bundle
[kimono-processor-bundle]

The bundle name is different from the Bundle Manifest's Bundle-SymbolicName. Does it ring the bell ?


Willem

lekkie wrote:

Thanks.

Camel Version -> 2.1.0.psc-01-00RC1
Osgi Container ->  Karaf
Osgi version -> spring-osgi-core (1.2.0)
camel-osgi -> (2.1.0.psc-01-00RC1)

Bundle Manifest:

Manifest-Version: 1.0
Export-Package: org.tempuri;uses:="org.apache.camel,org.apache.camel.p
 rocessor.aggregate"
Built-By: lekkie
Tool: Bnd-0.0.357
Bundle-Name: Services :: Request Processor Bundle
Created-By: Apache Maven Bundle Plugin
Require-Bundle: org.apache.cxf.bundle
Build-Jdk: 1.6.0_16
Bundle-Version: 0.0.1.SNAPSHOT
Bnd-LastModified: 1263566379826
Bundle-ManifestVersion: 2
Import-Package: META-INF.cxf,META-INF.cxf.transport.nmr,javax.jws;vers
 ion="2.0",javax.wsdl,org.apache.camel;version="2.0",org.apache.camel.
 processor.aggregate;version="2.0",org.apache.cxf.bus,org.apache.servi
 cemix.camel.nmr,org.apache.servicemix.cxf.transport.nmr,org.apache.se
 rvicemix.nmr.api,org.apache.servicemix.nmr.api.event,org.apache.servi
 cemix.nmr.api.internal,org.springframework.beans.factory.config;versi
 on="2.5",org.tempuri,org.tempuri.MyAggregationStrategy
Bundle-SymbolicName: processor-bundle




Stephen Gargan wrote:
Can you give me some more info,such as the camel version and your osgi
container and version. The bundle manifest might not hurt either.


On Fri, Jan 15, 2010 at 10:01 AM, lekkie <lekkie.ay...@gmail.com> wrote:
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.





Reply via email to