Custom Type Converter isn't loaded
dnietoc Dec 1, 2016 2:34 PMHello
I'm following the Get Started page[1] to create a Fuse application based
on the Camel Content Based Router example.
So, I started working on the pipeline and the need for a custom type
converter arose.
Following the 45.2 of Camel's developers guide[2], I created a class with
a static method for the conversion, both annotated with @Converter.
package typeconverters; import java.util.List; import org.apache.camel.Converter; import org.apache.camel.Exchange; import dto.LineItem; @Converter public final class LineItemConverter { private LineItemConverter() {} @Converter public static LineItem fromListOfStrings(List<String> from, Exchange ex) { return new LineItem(); /* TODO: implement */ } }
Then, I created a file named TypeConverter under the directory
`src/main/resources/META-INF/services/org/apache/camel`. The file contains just
one line reading `typeconverters`.
Finally, I deploy to the server and start it, as documented in [1]. I put some
files in the input folder and bam! an exception is thrown:
org.apache.camel.InvalidPayloadException: No body available of type: dto.LineItem but has value: [...] at org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:107)[232:org.apache.camel.camel-core:2.17.0.redhat-630187] ... Caused by: org.apache.camel.NoTypeConversionAvailableException: No type converter available to convert from type: java.util.ArrayList to the required type: dto.LineItem with value...
The developer guide said something about putting the JAR containing the converter
in the classpath. But I don't really want to separate the converter from the fuse app.
Any ideas?
Thanks
--
[1] JBoss Fuse - Get Started | Red Hat Developers
Versions:
* JBoss Fuse: 6.3.0.redhat-187
* JBoss Developer Studio: 10.0.0.GA-standalone-installer
* Apache Camel: 2.17.0.redhat-630187