Issue with Camel and Jackson Dependency
<p>I'm facing an issue with the latest version of Camel and a REST DSL route. The full code can be found and run from here: <a href="https://github.com/mikevoxcap/nvisia-catalog-camel-service" rel="nofollow">https://github.com/mikevoxcap/nvisia-catalog-camel-service</a>. I'm getting an exception when I try to run the route, underlying cause below:</p>

<pre><code>Caused by: java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.introspect.AnnotatedMember.getType()Lcom/fasterxml/jackson/databind/JavaType;
....
at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:926)
    at org.apache.camel.component.jackson.JacksonDataFormat.marshal(JacksonDataFormat.java:154)
    at org.apache.camel.processor.MarshalProcessor.process(MarshalProcessor.java:69)
</code></pre>

<p>My question is, which version of Jackson should I be targeting to no longer receive this exception. </p>

<p>I'm bringing in the following dependencies: </p>

<pre><code>&lt;properties&gt;
    &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
    &lt;project.reporting.outputEncoding&gt;UTF-8&lt;/project.reporting.outputEncoding&gt;
    &lt;spring.boot.version&gt;1.3.5.RELEASE&lt;/spring.boot.version&gt;
    &lt;camel.version&gt;2.17.1&lt;/camel.version&gt;
    &lt;java.version&gt;1.8&lt;/java.version&gt;
&lt;/properties&gt;

&lt;dependencyManagement&gt;
    &lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-dependencies&lt;/artifactId&gt;
            &lt;version&gt;${spring.boot.version}&lt;/version&gt;
            &lt;type&gt;pom&lt;/type&gt;
            &lt;scope&gt;import&lt;/scope&gt;
        &lt;/dependency&gt;
    &lt;/dependencies&gt;
&lt;/dependencyManagement&gt;

&lt;dependencies&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
        &lt;artifactId&gt;spring-boot-starter-web&lt;/artifactId&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
        &lt;artifactId&gt;spring-boot-starter-actuator&lt;/artifactId&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
        &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
        &lt;artifactId&gt;camel-spring-boot&lt;/artifactId&gt;
        &lt;version&gt;${camel.version}&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
        &lt;artifactId&gt;camel-jackson&lt;/artifactId&gt;
        &lt;version&gt;${camel.version}&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
        &lt;artifactId&gt;camel-servlet&lt;/artifactId&gt;
        &lt;version&gt;${camel.version}&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
        &lt;artifactId&gt;camel-swagger-java&lt;/artifactId&gt;
        &lt;version&gt;${camel.version}&lt;/version&gt;
    &lt;/dependency&gt;

    &lt;!-- Testing --&gt;
    &lt;dependency&gt;
        &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
        &lt;artifactId&gt;spring-boot-starter-test&lt;/artifactId&gt;
        &lt;scope&gt;test&lt;/scope&gt;
    &lt;/dependency&gt;

    &lt;dependency&gt;
        &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
        &lt;artifactId&gt;camel-test-spring&lt;/artifactId&gt;
        &lt;version&gt;${camel.version}&lt;/version&gt;
        &lt;scope&gt;test&lt;/scope&gt;
    &lt;/dependency&gt;   
&lt;/dependencies&gt;
</code></pre>

<p>After doing some searching on the exception I received, several people have run into this issue when it comes to version conflict. I noticed that the camel-jackson library is bringing in jackson-module-jaxb-annotations 2.7.2, but the remaining jackson libraries are at 2.6.6. I tried excluding jackson-module-jaxb-annotations 2.7.2 and then directly including 2.6.6, but that still resulted in the exception. </p>

<p>My route is relatively simple:</p>

<pre><code>  // Definition of the get catalog item endpoint
  rest("/catalogItem").
        // This is a GET method call for getting a catalog item by ID.
  get("{id}").
        // Description of what this method does
        description("Retrieve a catalog item by ID").
        // Define the output type that will be returned from this method
        outType(CatalogItem.class)
        // Define where the message is routed to as a URI. Here we use a
        // Spring Bean and define the bean method to invoke. Note that Camel
        // has converted the ID placeholder from the URL into a header
        // entry.
        .to("bean:catalogService?method=getCatalogItem(${header.id})");
</code></pre>

<p>My object being used as the JSON type is also pretty simple:</p>

<pre><code>public class CatalogItem {

   private int id;
   private double price;
   private String catalogItemType;
   private List&lt;CatalogItemAttribute&gt; attributes;

public class CatalogItemAttribute {

   private String attributeName;
   private String attributeValue;
</code></pre>