-
1. Re: Camel File Component - NoTypeConversionAvailableException
njiang May 11, 2010 7:54 PM (in response to annasw)Can I have a look at your class path ?
Please make sure you are using camel-spring and not using camel-spring-osgi when you run your code from executable jar file.
-
2. Re: Camel File Component - NoTypeConversionAvailableException
annasw May 12, 2010 9:58 AM (in response to njiang)My classpath does not have camel-osgi.jar/camel-spring-osgi.jar
Here are the jars on my classpath: lib/java/junit-3.8.1.jar, lib/java/log4j-1.2.9.jar, programs/eclipse/mysql-connector-java-5.1.6-bin.jar, programs/log4j/log4j.properties, programs/log4j/log4jproperties.jar, programs/spring-framework-2.5.5/dist/spring.jar, programs/spring-framework-2.5.5/lib/jakarta-commons/commons-logging.jar, programs/spring-framework-2.5.5/lib/log4j-1.2.15.jar, programs/eclipse/mysql-connector-java-5.1.6-bin.jar.
Pom dependencies:
Thanks!
Edited by: asilchenko on May 12, 2010 1:56 PM
-
3. Re: Camel File Component - NoTypeConversionAvailableException
davsclaus May 12, 2010 10:21 AM (in response to annasw)How do you exactly start your app as a jar file?
-
4. Re: Camel File Component - NoTypeConversionAvailableException
annasw May 12, 2010 12:00 PM (in response to davsclaus)java -jar target/myJar-1.0-SNAPSHOT.one-jar.jar
I am using onejar-maven-plugin to generate jar. I have used this many times before to generate jar with dependencies. It always works fine but not when I am using Camel File Component.
This morning I tried changing route to
And got similar but little different error:
ERROR - Caused by: [org.apache.camel.InvalidPayloadException - No body available of type: java.io.InputStream but has value: GenericFile[myFileName] of type: org.apache.camel.component.file.GenericFile on: GenericFileMessage with file: GenericFile[myFileName]. Caused by: No type converter available to convert from type: org.apache.camel.component.file.GenericFile to the required type: java.io.InputStream with value GenericFile[myFileName]. Exchange[GenericFileMessage with file: GenericFile[myFileName]]. Caused by: [org.apache.camel.NoTypeConversionAvailableException - No type converter available to convert from type: org.apache.camel.component.file.GenericFile to the required type: java.io.InputStream with value GenericFile[myFileName]]]
Thank you very much for your time!
Edited by: asilchenko on May 12, 2010 3:57 PM
Edited by: asilchenko on May 12, 2010 3:58 PM
Edited by: asilchenko on May 12, 2010 4:00 PM
-
5. Re: Camel File Component - NoTypeConversionAvailableException
davsclaus May 12, 2010 12:03 PM (in response to annasw)Maybe that onejar maven tool do only put .class files in the one big JAR. You have to include files from META-INF as well.
And I suspect it can't merge the META-INF .../TypeConverter file which tells Camel which converters it should find in this JAR.
So start it in normal situations using a -cp and provide the classpath.
Or if using maven, you can just use mvn camel:run
-
6. Re: Camel File Component - NoTypeConversionAvailableException
annasw May 12, 2010 12:45 PM (in response to davsclaus)My project does not have META-INF directory or TypeConverter file. It works without it in Eclipse. Do I need to create META-INF directory in my project? I need to get Camel Component running from jar without maven.
Thank you very much!
Edited by: asilchenko on May 12, 2010 4:43 PM
-
7. Re: Camel File Component - NoTypeConversionAvailableException
davsclaus May 12, 2010 12:59 PM (in response to annasw)Dont mess with the .jars.
Just start it using a script which sets the classpath and then invoke you main class.
-
8. Re: Camel File Component - NoTypeConversionAvailableException
annasw May 12, 2010 2:40 PM (in response to davsclaus)I was hoping to satisfy a requirement by using executable jar file but looks like it might not be a best way.
Thank you,
Anna
Edited by: asilchenko on May 12, 2010 6:40 PM
-
9. Re: Camel File Component - NoTypeConversionAvailableException
annasw May 13, 2010 4:11 PM (in response to davsclaus)I am trying to add missing TypeConverter to classpath. I am seeing TypeConverter in camel-core-2.2.0.jar and some other jars. Could you please let me know which one gets used? Which jar I need to include for TypeConverter?
Thank you very much!
Edited by: asilchenko on May 13, 2010 8:11 PM
-
10. Re: Camel File Component - NoTypeConversionAvailableException
davsclaus May 14, 2010 6:12 AM (in response to annasw)You cannot do this.
Its a special file in META-INF/services/org/apache/camel named TypeConverter which has a list of the package names it should scan.
And if you merge many .jars -> 1 jar then the TypeConverter file should be merged as well to include all the package names from all the jars. Right now I bet it just add the TypeConverter file from either the first or last .jar.
-
11. Re: Camel File Component - NoTypeConversionAvailableException
annasw May 14, 2010 2:40 PM (in response to davsclaus)Thank you for your response. I could not get META-INF/services/org/apache/camel to work. But I got around my problem by sending message thought bean processor class. And, everything works now from executable jar file.
public InputStream convertBody(GenericFile file)
{
InputStream inputStream = null;
try
{
inputStream = new BufferedInputStream(new FileInputStream((File)file.getFile()));
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return inputStream;
}
Thank you very much,
Anna