On Thu, Nov 22, 2012 at 8:17 PM, Florian B.
<[email protected]> wrote:
> 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");
>
Try with using .routeId to set id of the route.
from("file://data?doneFileName=${file:name}.done").noAutoStartup().routeId("route_pickup_file")
.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");
> 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.
--
Claus Ibsen
-----------------
Red Hat, Inc.
FuseSource is now part of Red Hat
Email: [email protected]
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen