[ 
https://issues.apache.org/jira/browse/CAMEL-4517?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Timothy updated CAMEL-4517:
---------------------------

    Description: 
I am trying CBR pattern and using 'choice', 'when', 'to' and 'endChoice()'.
I can actually have the code compile, but always got cast exception when 
running it.

this really confused me, because I checked every steps and can't find any 
problems.
does anyone have similar situation?

here is my Camel route in JDSL:
=========================================================================
18 CamelContext context = new DefaultCamelContext();
19 ConnectionFactory connectionFacotyr = new 
ActiveMQConnectionFactory("tcp://P10118178-T400:61616");
20 context.addComponent("jms", 
JmsComponent.jmsComponentAutoAcknowledge(connectionFacotyr));
21     
22 context.addRoutes(new RouteBuilder() {
23   public void configure() throws Exception {
24     from("jms:incomingOrders")
25       .choice()
26         .when(header("CamelFileName").endsWith(".crt"))
27           .to("jms:crtQueue").endChoice()
28         .when(header("CamelFileName").endsWith(".zpx"))
29           .to("jms:zpxQueue");
30           }
31     });
=========================================================================

pretty simple route. but always got an 'java.lang.ClassCastException' when I 
start the Camel route.
the exception message as below: (the exception occurred at line 27)
=========================================================================
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:1203)
        at SimpleTest$1.configure(SimpleTest.java:27)
        at 
org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:322)
        at 
org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:277)
        at 
org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:263)
        at 
org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelContext.java:603)
        at SimpleTest.main(SimpleTest.java:22)
=========================================================================

Maven pom.xml:
=========================================================================
<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.pic.newigx.sample</groupId>
  <artifactId>rider.auto.parts.sample1.eip.filter1</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
        <plugins>
                <plugin>
                        <groupId>org.apache.camel</groupId>
                        <artifactId>camel-maven-plugin</artifactId>
                        <version>2.8.0</version>
                </plugin>
        </plugins>
  </build>
  <dependencies>
        <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-jms</artifactId>
                <version>2.8.1</version>
        </dependency>
        <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-spring</artifactId>
                <version>2.8.1</version>
        </dependency>
        <dependency>
                <groupId>org.apache.activemq</groupId>
                <artifactId>activemq-core</artifactId>
                <version>5.3.1</version>
        </dependency>
  </dependencies>
</project>
=========================================================================


  was:
I am trying CBR pattern and using 'choice', 'when', 'to' and 'endChoice()'.
I can actually have the code compile, but always got cast exception when 
running it.

this really confused me, because I checked every steps and can't find any 
problems.
does anyone have similar situation?

here is my Camel route in JDSL:
=========================================================================
18     CamelContext context = new DefaultCamelContext();
19     ConnectionFactory connectionFacotyr = new 
ActiveMQConnectionFactory("tcp://P10118178-T400:61616");
20     context.addComponent("jms", 
JmsComponent.jmsComponentAutoAcknowledge(connectionFacotyr));
21     
22     context.addRoutes(new RouteBuilder() {
23              public void configure() throws Exception {
24                   from("jms:incomingOrders")
25                   .choice()
26                           .when(header("CamelFileName").endsWith(".crt"))
27                                   .to("jms:crtQueue").endChoice()
28                           .when(header("CamelFileName").endsWith(".zpx"))
29                                   .to("jms:zpxQueue");
30           }
31     });
=========================================================================

pretty simple route. but always got an 'java.lang.ClassCastException' when I 
start the Camel route.
the exception message as below: (the exception occurred at line 27)
=========================================================================
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:1203)
        at SimpleTest$1.configure(SimpleTest.java:27)
        at 
org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:322)
        at 
org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:277)
        at 
org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:263)
        at 
org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelContext.java:603)
        at SimpleTest.main(SimpleTest.java:22)
=========================================================================

Maven pom.xml:
=========================================================================
<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.pic.newigx.sample</groupId>
  <artifactId>rider.auto.parts.sample1.eip.filter1</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
        <plugins>
                <plugin>
                        <groupId>org.apache.camel</groupId>
                        <artifactId>camel-maven-plugin</artifactId>
                        <version>2.8.0</version>
                </plugin>
        </plugins>
  </build>
  <dependencies>
        <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-jms</artifactId>
                <version>2.8.1</version>
        </dependency>
        <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-spring</artifactId>
                <version>2.8.1</version>
        </dependency>
        <dependency>
                <groupId>org.apache.activemq</groupId>
                <artifactId>activemq-core</artifactId>
                <version>5.3.1</version>
        </dependency>
  </dependencies>
</project>
=========================================================================


    
> got cast exception when using endChoice() in Java DSL
> -----------------------------------------------------
>
>                 Key: CAMEL-4517
>                 URL: https://issues.apache.org/jira/browse/CAMEL-4517
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.8.1
>         Environment: Windows XP, JDK 1.6, Eclipse IDE
>            Reporter: Timothy
>
> I am trying CBR pattern and using 'choice', 'when', 'to' and 'endChoice()'.
> I can actually have the code compile, but always got cast exception when 
> running it.
> this really confused me, because I checked every steps and can't find any 
> problems.
> does anyone have similar situation?
> here is my Camel route in JDSL:
> =========================================================================
> 18 CamelContext context = new DefaultCamelContext();
> 19 ConnectionFactory connectionFacotyr = new 
> ActiveMQConnectionFactory("tcp://P10118178-T400:61616");
> 20 context.addComponent("jms", 
> JmsComponent.jmsComponentAutoAcknowledge(connectionFacotyr));
> 21     
> 22 context.addRoutes(new RouteBuilder() {
> 23   public void configure() throws Exception {
> 24     from("jms:incomingOrders")
> 25       .choice()
> 26       .when(header("CamelFileName").endsWith(".crt"))
> 27         .to("jms:crtQueue").endChoice()
> 28       .when(header("CamelFileName").endsWith(".zpx"))
> 29         .to("jms:zpxQueue");
> 30         }
> 31     });
> =========================================================================
> pretty simple route. but always got an 'java.lang.ClassCastException' when I 
> start the Camel route.
> the exception message as below: (the exception occurred at line 27)
> =========================================================================
> 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:1203)
>       at SimpleTest$1.configure(SimpleTest.java:27)
>       at 
> org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:322)
>       at 
> org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:277)
>       at 
> org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:263)
>       at 
> org.apache.camel.impl.DefaultCamelContext.addRoutes(DefaultCamelContext.java:603)
>       at SimpleTest.main(SimpleTest.java:22)
> =========================================================================
> Maven pom.xml:
> =========================================================================
> <project xmlns="http://maven.apache.org/POM/4.0.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> http://maven.apache.org/maven-v4_0_0.xsd";>
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>com.pic.newigx.sample</groupId>
>   <artifactId>rider.auto.parts.sample1.eip.filter1</artifactId>
>   <version>0.0.1-SNAPSHOT</version>
>   <build>
>       <plugins>
>               <plugin>
>                       <groupId>org.apache.camel</groupId>
>                       <artifactId>camel-maven-plugin</artifactId>
>                       <version>2.8.0</version>
>               </plugin>
>       </plugins>
>   </build>
>   <dependencies>
>       <dependency>
>               <groupId>org.apache.camel</groupId>
>               <artifactId>camel-jms</artifactId>
>               <version>2.8.1</version>
>       </dependency>
>       <dependency>
>               <groupId>org.apache.camel</groupId>
>               <artifactId>camel-spring</artifactId>
>               <version>2.8.1</version>
>       </dependency>
>       <dependency>
>               <groupId>org.apache.activemq</groupId>
>               <artifactId>activemq-core</artifactId>
>               <version>5.3.1</version>
>       </dependency>
>   </dependencies>
> </project>
> =========================================================================

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to