I'm trying to get Camel to connected to the ActiveQM within SM3.3 (as
downloaded from apache) but every time I add the SA to the hotdeploy folder,
SM throws a NoClassDefFoundError:
org/apache/camel/component/jms/JmsComponent against the 'activemq' bean.
I think that my configuration is correct and I can find the
JmsComponent.class file within the assembly jar file, so I'm not too sure
why ServiceMix is failing to locate the class. As I can find various other
camel files within the hotdeploy\servicemix-camel-2008.01-installer.zip
file, I'm wondering if there is a version mis-match.
My SA, SU and camel configuration is below. Can anyone see what I'm doing
wrong/give me pointers.
Any help is gratefully received,
Stuart.
SA pom.xml:
<?xml version="1.0" encoding="UTF-8"?><project>
<parent>
<artifactId>parent</artifactId>
<groupId>manufacture.srt.jms-routing</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>manufacture.srt.jms-routing</groupId>
<artifactId>jms-routing-sa</artifactId>
<packaging>jbi-service-assembly</packaging>
<name>Camel Routing Service Assembly</name>
<version>1.0-SNAPSHOT</version>
<url>http://www.somewhere.com</url>
<build>
<plugins>
<plugin>
<groupId>org.apache.servicemix.tooling</groupId>
<artifactId>jbi-maven-plugin</artifactId>
<version>${servicemix-version}</version>
<extensions>true</extensions>
<configuration>
<type>service-assembly</type>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
...
</repositories>
<pluginRepositories>
...
</pluginRepositories>
<dependencies>
<dependency>
<groupId>manufacture.srt.jms-routing</groupId>
<artifactId>jms-routing-su</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<properties>
<servicemix-version>3.2.2</servicemix-version>
</properties>
</project>
SU pom.xml:
<?xml version="1.0" encoding="UTF-8"?><project>
<parent>
<artifactId>parent</artifactId>
<groupId>manufacture.srt.jms-routing</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>manufacture.srt.jms-routing</groupId>
<artifactId>jms-routing-su</artifactId>
<packaging>jbi-service-unit</packaging>
<name>Camel Routing Service Unit</name>
<version>1.0-SNAPSHOT</version>
<url>http://www.somewhere.com</url>
<build>
<defaultGoal>install</defaultGoal>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.servicemix.tooling</groupId>
<artifactId>jbi-maven-plugin</artifactId>
<version>${servicemix-version}</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.apache.camel</groupId>
<artifactId>camel-maven-plugin</artifactId>
<version>${camel-version}</version>
</plugin>
</plugins>
</build>
<repositories>
<repository>
...
</repositories>
<pluginRepositories>
...
</pluginRepositories>
<dependencies>
<dependency>
<groupId>org.apache.servicemix</groupId>
<artifactId>servicemix-camel</artifactId>
<version>${servicemix-version}</version>
</dependency>
<dependency>
<groupId>org.apache.servicemix</groupId>
<artifactId>servicemix-core</artifactId>
<version>${servicemix-version}</version>
<scope>provided</scope>
</dependency> <dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jms</artifactId>
<version>${camel-version}</version>
</dependency>
</dependencies>
<properties>
<servicemix-version>3.2.2</servicemix-version>
<camel-version>1.4.0</camel-version>
</properties>
</project>
camel-context.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://activemq.apache.org/camel/schema/spring
http://activemq.apache.org/camel/schema/spring/camel-spring.xsd
">
<camelContext id="camel"
xmlns="http://activemq.apache.org/camel/schema/spring">
<route>
<from uri="activemq:queue:inbound.inbox.data.file"/>
<to uri="activemq:queue:inbound.source.data.file"/>
</route>
</camelContext>
<bean id="activemq"
class="org.apache.activemq.camel.component.ActiveMQComponent">
<property name="brokerURL" value="tcp://localhost:61616"/>
</bean>
</beans>