Hi I'm trying to setup some routes to handle an import from different csv
files to a database. First I defined a single route for each file but I
thought it should be easier and be more flexible when I try to split
everything up to have some routes which can be used for different files.
Here are the routes I defined till now. That are not all routes. At the
moment I just setup up two routes to see how it works.
CsvDataFormat csv = new CsvDataFormat();
csv.setDelimiter(";");
from("file://data?doneFileName=${file:name}.done").noAutoStartup()
.choice()
.when(header("CamelFileNameOnly").isEqualTo("import_organization.csv"))
.to("direct:csv_organization_in")
.when(header("CamelFileNameOnly").isEqualTo("import_user.csv"))
.to("direct:csv_user_in")
.endChoice().setId("route_pickup_file");
from("direct:csv_organization_in").noAutoStartup().unmarshal(csv)
.bean(msdOrganizationConverter, "convert")
.to(YsuraImportRouteBuilder.ENDPOINT_DIRECT_IMPORT_YSURA_OBJECTS_IN_DB).setId("route_import_organization");
When I start up the routes I got following exception:
java.lang.ClassCastException: org.apache.camel.model.RouteDefinition cannot
be cast to org.apache.camel.model.ChoiceDefinition
at
org.apache.camel.model.ProcessorDefinition.endChoice(ProcessorDefinition.java:1237)
~[camel-core-2.10.2.jar:2.10.2]
at
com.isarsoftware.ysura.model.integration.msd.MsdImportRouteBuilder.configure(MsdImportRouteBuilder.java:50)
~[ysura-integration-0.0.1.jar:na]
....
I've also tried to append a .end() to each of the choices, but then I got an
error on the second when(): The method when(Predicate) is undefined for the
type ProcessorDefinition<capture#1-of ?
>
Any ideas what I'm doing wrong?
Best Regards,
Florian
--
View this message in context:
http://camel.465427.n5.nabble.com/CastException-error-when-using-choice-in-a-route-tp5723125.html
Sent from the Camel - Users mailing list archive at Nabble.com.