Thursday, January 30, 2014

Camel cxfenpoint in ActiveMQ 5.9.0

Using cxfendpoints in ActiveMQ requires deplyment of dependent jars in lib\Camel subdirectory. By default just core, jms and spring (2.12.1 version) are deployed.
In order to obtain required jars:

  • create a Maven pom.xml file with the following content:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>


    <groupId>org.apache.camel</groupId>

    <version>2.12.1</version>


    <artifactId>camel-example-console</artifactId>
    <packaging>jar</packaging>
    <name>Camel cxf</name>
    <description>camel-cxf dependencies</description>

    <dependencies>

        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-cxf</artifactId>
            <version>2.12.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-stream</artifactId>
            <version>2.12.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http-jetty</artifactId>
            <version>2.7.8</version>
        </dependency>
        
        <dependency>
          <groupId>org.eclipse.jetty.aggregate</groupId>
          <artifactId>jetty-all-server</artifactId>
          <version>8.1.14.v20131031</version>
        </dependency>            
        <dependency>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-websocket</artifactId>
          <version>8.1.14.v20131031</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- Allows the example to be run via 'mvn compile exec:java' -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <configuration>
                    <mainClass>org.apache.camel.example.console.CamelConsoleMain</mainClass>
                    <includePluginDependencies>true</includePluginDependencies>
                </configuration>
            </plugin>
        </plugins>

    </build>

</project>
  • run the following command: mvn dependency:copy-dependencies
  • find in target\dependencies all required dependencies
Remark: because camel-cxf 2.12.1 depends on cxf-rt-transports-http-jetty 2.7.8 some newer versions of jetty jars will be aslo downloaded which will interfere with ActiveMQ already deployed jars (jetty-all-server and jetty-websocket, version 7.6.9.v20130131, lib\web ) so also jetty-all-server and jetty-websocket dependencies are downloaded. If this is not done web console will not work.

Put all jars in lib\camel.

No comments :

Post a Comment