2014-02-05 6 views
6

Ich habe Probleme mit der Jackson JSON-Bibliothek mit Kamel. Die Ausnahme ist:Ausnahme mit Jackson JSON-Bibliothek mit Kamel

FailedToCreateRouteException: Failed to create route... because of Data format 'json-jackson' could not be created. Ensure the data format is valid and the associated Camel component is present on the classpath 

Hier ist der Anfang der Classpath Mitteilung, dass die Jackson-Libs sind:

<<< camel-maven-plugin:2.9.0:run (default-cli) @ portlistener <<< 

--- camel-maven-plugin:2.9.0:run (default-cli) @ portlistener --- 
Classpath = [file:/C:/Users/andrew.b-ext/Workspace/portlistener/target/classes/, file:/C:/Users/andrew.b-ext/.m2/repository/org/codehaus/jackson/jackson-asl/1.9.13/jackson-core-asl-1.9.13.jar, file:/C:/Users/andrew.b-ext/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.13/jackson-mapper-asl-1.9.13.jar, file:/C:/Users/andrew.b-ext/.m2/repository/org/codehaus/jackson/jackson-jaxrs/1.9.13/jackson-jaxrs-1.9.13.jar, ...snip... 

Mein pom hat Jackson:

<properties> 
    <camel.version>2.12.2</camel.version> 
    <cxf.version>2.7.8</cxf.version> 
    <activemq.version>5.6.0</activemq.version> 
</properties> 

<dependencies> 
    <dependency> 
    <groupId>org.codehaus.jackson</groupId> 
    <artifactId>jackson-core-asl</artifactId> 
    <version>1.9.13</version> 
    </dependency> 
    <dependency> 
    <groupId>org.codehaus.jackson</groupId> 
    <artifactId>jackson-mapper-asl</artifactId> 
    <version>1.9.13</version> 
    </dependency> 
    <dependency> 
    <groupId>org.codehaus.jackson</groupId> 
    <artifactId>jackson-jaxrs</artifactId> 
    <version>1.9.13</version> 
    </dependency> 

Hier ist meine Definition von das Datenformatobjekt:

<bean id="jsonDataformat" class="org.apache.camel.model.dataformat.JsonDataFormat"> 
    <property name="unmarshalType" value="java.util.Map" /> 
    <property name="library" value="Jackson"></property> 
</bean> 

Ich versuchte, die jsonDataformat Erklärung Wechsel zu:

<camel:dataFormats> 
      <camel:json id="jsonDataformat" library="Jackson"/> 
</camel:dataFormats> 

Als ich tun, dass ich einen anderen Fehler:

Configuration problem: Cannot locate BeanDefinitionParser for element [dataFormats] 

Kann jemand sehen, was ich falsch mache?

Danke,

Andrew gesamte pom.xml

<?xml version="1.0" encoding="UTF-8"?> 

http://maven.apache.org/maven-v4_0_0.xsd ">

<modelVersion>4.0.0</modelVersion> 

<!--<parent> <artifactId>core</artifactId> <groupId>com.xxxx.clinical</groupId> 
    <version>3.3.3.3.1</version> </parent> --> 
<groupId>com.xxxx.clinical</groupId> 
<artifactId>portlistener</artifactId> 
<packaging>jar</packaging> 
<name>portlistener</name> 
<version>0.0.0.0.01</version> 

<properties> 
    <camel.version>2.12.2</camel.version> 
    <cxf.version>2.7.8</cxf.version> 
    <activemq.version>5.6.0</activemq.version> 
    <jackson.version>1.9.13</jackson.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-core-asl</artifactId> 
     <version>${jackson.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-mapper-asl</artifactId> 
     <version>${jackson.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-jaxrs</artifactId> 
     <version>${jackson.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-frontend-jaxws</artifactId> 
     <version>${cxf.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-transports-http</artifactId> 
     <version>${cxf.version}</version> 
    </dependency> 
    <!-- This dependency is needed if you're using the Jetty container --> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-transports-http-jetty</artifactId> 
     <version>${cxf.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.activemq</groupId> 
     <artifactId>activemq-all</artifactId> 
     <version>${activemq.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.activemq</groupId> 
     <artifactId>activemq-camel</artifactId> 
     <version>${activemq.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.activemq</groupId> 
     <artifactId>activemq-pool</artifactId> 
     <version>${activemq.version}</version> 
    </dependency> 
    <!-- Camel --> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-core</artifactId> 
     <version>${camel.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-spring</artifactId> 
     <version>${camel.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.xbean</groupId> 
     <artifactId>xbean-spring</artifactId> 
     <version>3.15</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-jms</artifactId> 
     <version>${camel.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-hl7</artifactId> 
     <version>${camel.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-netty</artifactId> 
     <version>${camel.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-cxf</artifactId> 
     <version>${camel.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-http</artifactId> 
     <version>${camel.version}</version> 
    </dependency> 
    <!-- hapi --> 
    <dependency> 
     <groupId>ca.uhn.hapi</groupId> 
     <artifactId>hapi-base</artifactId> 
     <version>2.1</version> 
     <exclusions> 
      <exclusion> 
       <artifactId>xercesImpl</artifactId> 
       <groupId>xerces</groupId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>ca.uhn.hapi</groupId> 
     <artifactId>hapi-structures-v25</artifactId> 
     <version>2.1</version> 
    </dependency> 


    <!-- logging --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.6.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.6.1</version> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.16</version> 
    </dependency> 
</dependencies> 

<build> 
    <defaultGoal>install</defaultGoal> 

    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 

     <!-- allows the route to be ran via 'mvn camel:run' --> 
     <plugin> 
      <groupId>org.apache.camel</groupId> 
      <artifactId>camel-maven-plugin</artifactId> 
      <version>2.9.0</version> 
     </plugin> 
    </plugins> 
</build> 
</project> 

Antwort

12

Sie vermissen die Kamel-Jackson-Abhängigkeit:

<dependency> 
    <groupId>org.apache.camel</groupId> 
    <artifactId>camel-jackson</artifactId> 
    <version>${camel-version}</version> 
</dependency> 

Das zieht jackson-core-asl und jackson-mapper-asl ein, aber leider keine jackson-jaxrs. Für Letzteres benötigen Sie noch eine explizite Abhängigkeit in einer kompatiblen Version.

+0

Dooh! Danke vielmals. Manchmal wünschte ich, ich würde die Frage viel früher stellen als ich. – KingAndrew