Janne, No, this should work out-of-the-box -- you can still configure the ActiveMQ component yourself if you want more control over how things are set up, but there are some default settings for the activemq: endpoints that make it possible to just deploy those routes as they're printed out in the quickstart guide.
Regards, Gert Vanthienen ------------------------ FuseSource Web: http://fusesource.com Blog: http://gertvanthienen.blogspot.com/ On Tue, Mar 8, 2011 at 6:55 PM, janne postilista <[email protected]> wrote: > Thanks for the quickstart pointer! Very helpful. I have been using > different versions, ServiceMix 4.2 and 4.3, and Fuse ESB, so much that > it seems I'm starting to lose track myself....the ClassCastException > is from ServiceMix 4.2. > > I will try to follow the quickstart on SM 4.3 and get back to the > issue after it. I guess I still need to introduce active mq bean and > broker: > > <bean id="activemq" > class="org.apache.activemq.camel.component.ActiveMQComponent" > depends-on="my-broker"> > <property name="brokerURL" value="tcp://localhost:61616" /> > </bean> > > <broker:broker id="my-broker" useJmx="false" persistent="false" > brokerName="localhost"> > <broker:transportConnectors> > <broker:transportConnector uri="tcp://localhost:61616"/> > </broker:transportConnectors> > </broker:broker> > > ? Those are not included the quickstart blueprint xml file (probably > since it is assumed they are configured somewhere else?). > > On Tue, Mar 8, 2011 at 6:53 PM, Gert Vanthienen > <[email protected]> wrote: >> L.S, >> >> What version of ServiceMix are you using for this scenario? In some >> other post, I see you mention 4.3.0 but this features.xml file seems >> to indicate that you're using 4.2.0. In ServiceMix 4.3.0, camel-jms >> and activemq-camel are both preinstalled. As far as 4.3.0 is >> concerned, our new quickstart guide has a similar example that just >> seems to work out of the box for me (cfr. >> http://servicemix.apache.org/docs/4.3.0-SNAPSHOT/quickstart/activemq.html). >> >> Could you paste the output for the osgi:headers command for the bundle >> you're deploying and I'll try to add a similar example using bundles >> instead of plain XML files to our Camel guide? >> >> Regards, >> >> Gert Vanthienen >> ------------------------ >> FuseSource >> Web: http://fusesource.com >> Blog: http://gertvanthienen.blogspot.com/ >> >> >> >> On Tue, Mar 8, 2011 at 3:26 PM, janne postilista >> <[email protected]> wrote: >>> Camel's ActiveMQ component http://camel.apache.org/activemq.html lists >>> that it needs dependencies: >>> >>> * camel-jms >>> * activemq-camel >>> >>> If I would be running Camel in standalone environment, I guess I would >>> be putting those as maven pom dependencies (examples in >>> http://camel.apache.org/activemq.html) >>> >>> But since I am running my solution as OGSi bundle deployed in >>> ServiceMix, I am not sure. Should I put those as maven pom.xml >>> dependencies, or reference the OSGi bundles that already exist in >>> ServiceMix? >>> >>> - what do I put in my maven pom.xml dependencies, what in >>> maven-bundle-plugin Import-Packages? >>> - are there any configuration examples / documentation on how to >>> configure servicemix OSGi bundle that contains camel route which uses >>> camel activemq component? >>> >>> camel-osgi example starts with pom.xml with: >>> >>> <dependencies> >>> <dependency> >>> <groupId>commons-logging</groupId> >>> <artifactId>commons-logging</artifactId> >>> <scope>provided</scope> >>> </dependency> >>> <dependency> >>> <groupId>org.apache.camel</groupId> >>> <artifactId>camel-spring</artifactId> >>> <version>${camel.version}</version> >>> </dependency> >>> </dependencies> >>> >>> <build> >>> <plugins> >>> <plugin> >>> <groupId>org.apache.felix</groupId> >>> <artifactId>maven-bundle-plugin</artifactId> >>> <configuration> >>> <instructions> >>> >>> <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName> >>> >>> <Import-Package>*,org.apache.camel.osgi</Import-Package> >>> >>> <Private-Package>org.apache.servicemix.examples.camel</Private-Package> >>> </instructions> >>> </configuration> >>> </plugin> >>> </plugins> >>> </build> >>> >>> How should I change it? Seems that no matter whether I add >>> org.apache.camel.component.jms to Import-Packages, or add >>> >>> <dependency> >>> <groupId>org.apache.camel</groupId> >>> <artifactId>camel-jms</artifactId> >>> <version>${camel.version}</version> >>> </dependency> >>> >>> I always get java.lang.ClassNotFoundException: >>> org.apache.camel.component.jms.JmsComponent when I try to deploy my >>> bundle. >>> >>> >>> >>> >>> On Tue, Mar 8, 2011 at 2:35 PM, janne postilista >>> <[email protected]> wrote: >>>> I'm trying to run a simple camel test route which reads files from a >>>> directory, puts them into an ActiveMQ queue, and another one reads the >>>> files from the queue and writes them to another directory. >>>> >>>> I took examples/camel-osgi and started building on top of it. >>>> >>>> beans.xml: >>>> >>>> <route> >>>> <from uri="activemq:queue:someq"/> >>>> <to uri="file:d:/servicemix-files/out" /> >>>> </route> >>>> <route> >>>> <from uri="file:d:/servicemix-files/in"/> >>>> <to uri="activemq:queue:someq"/> >>>> </route> >>>> >>>> <bean id="activemq" >>>> class="org.apache.activemq.camel.component.ActiveMQComponent" >>>> depends-on="my-broker"> >>>> <property name="brokerURL" value="tcp://localhost:61616" /> >>>> </bean> >>>> >>>> <broker:broker id="my-broker" useJmx="false" persistent="false" >>>> brokerName="localhost"> >>>> <broker:transportConnectors> >>>> <broker:transportConnector uri="tcp://localhost:61616"/> >>>> </broker:transportConnectors> >>>> </broker:broker> >>>> >>>> At first I got a bunch of osgi "unresolved constraint in bundle >>>> camel-osgi errors". After a while of trial and error I ended up with >>>> following changes: >>>> >>>> features.xml: >>>> >>>> <feature name="examples-camel-osgi" version="4.2.0"> >>>> <feature version="2.2.0">camel</feature> >>>> <feature version="5.3.0">activemq</feature> >>>> <feature version="4.2.0">camel-activemq</feature> >>>> <bundle>mvn:org.apache.servicemix.examples/camel-osgi/4.2.0</bundle> >>>> </feature> >>>> >>>> pom.xml: >>>> <artifactId>maven-bundle-plugin</artifactId> >>>> ... >>>> >>>> <Import-Package>*,org.apache.camel.component.jms,org.apache.activemq.xbean,org.apache.camel.osgi,org.apache.activemq.camel.component,org.apache.activemq.broker,org.apache.activemq.pool</Import-Package> >>>> >>>> But still I do get a ClassNotFoundException when I try to deploy the >>>> feature: >>>> >>>> Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: >>>> Error loading class >>>> [org.apache.activemq.camel.component.ActiveMQComponent] for bean with >>>> name 'activemq' defined in URL [bun >>>> dle://222.0:0/META-INF/spring/beans.xml]: problem with class file or >>>> dependent class; nested exception is java.lang.NoClassDefFoundError: >>>> org.apache.activemq.camel.component.ActiveMQComponent not foun >>>> d from bundle [Apache ServiceMix Example :: Camel OSGi (camel-osgi)] >>>> at >>>> org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1144) >>>> .... >>>> Caused by: java.lang.ClassNotFoundException: >>>> org.apache.camel.component.jms.JmsComponent >>>> >>>> 1) What do I need to do to fix this ClassNotFoundException >>>> 2) How can I know what I need to configure into features.xml, pom.xml >>>> import-packages and dependencies when I want to use camel and it's >>>> activemq component from servicemix? Is this information documented >>>> somewhere? Doing it by trial-and-error gets frustrating pretty fast... >>>> >>> >> >
