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.

Reply via email to