[ 
https://issues.apache.org/jira/browse/CAMEL-8792?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14556113#comment-14556113
 ] 

Willem Jiang commented on CAMEL-8792:
-------------------------------------

The message body is list, camel has trouble to find the right instance to 
invoke.
Can you just put the first element of the list into the message body?

> org.apache.camel.language.bean.RuntimeBeanExpressionException: Failed to 
> invoke method: 
> ----------------------------------------------------------------------------------------
>
>                 Key: CAMEL-8792
>                 URL: https://issues.apache.org/jira/browse/CAMEL-8792
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core, camel-sql
>    Affects Versions: 2.15.2
>         Environment: windows7 jdk1.7
>            Reporter: 黄颜木
>
> 1. when just use sqlComponents ,its okay. 
> 2. I try to just run the sql one times,so add timer//foo?repeatCount=1
> error happend.  
> my code goes here:
>  <beans xmlns="http://www.springframework.org/schema/beans";
>  19        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>  20        xmlns:camel="http://camel.apache.org/schema/spring";
>  21        xsi:schemaLocation="
>  22        http://www.springframework.org/schema/beans 
> http://www.springframework.org/schema/beans/spring-beans.xsd
>  23        http://camel.apache.org/schema/spring 
> http://camel.apache.org/schema/spring/camel-spring.xsd";>
>  24
>  25   <!-- this is the JDBC data source which uses an Oracle database -->
>  26   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
> destroy-method="close">
>  27     <property name="driverClassName" 
> value="oracle.jdbc.driver.OracleDriver"/>
>  28     <property name="url" 
> value="jdbc:oracle:thin:@xxxx.xxx.xxx.xxx:1521:test"/>
>  29     <property name="username" value="xxx"/>
>  30     <property name="password" value="xxx"/>
>  31   </bean>
>  32
>  33   <!-- configure the Camel SQL component to use the JDBC data source -->
>  34   <bean id="sql" class="org.apache.camel.component.sql.SqlComponent">
>  35     <property name="dataSource" ref="dataSource"/>
>  36   </bean>
>  37
>  38   <!-- ofbiz remote dispatcher -->
>  39   <bean id="ofbizDispatcher" class="com.ofbizian.OfbizDispatcher">
>  40     <constructor-arg ref="remoteDispatcher"/>
>  41   </bean>
>  42
>  43   <bean id="categoryBean" class="com.ofbizian.CategoryBean"/>
>  44
>  45   <!-- here is Camel configured with a number of routes -->
>  46   <camelContext xmlns="http://camel.apache.org/schema/spring";>
>  47      <!-- use Camel property placeholder loaded from the given file -->
>  48      <propertyPlaceholder id="placeholder" 
> location="classpath:sql.properties"/>
>  49
>  50     <!-- ofbiz remote deispatcher -->
>  51     <proxy id="remoteDispatcher" 
> serviceInterface="org.ofbiz.service.rmi.RemoteDispatcher" 
> serviceUrl="direct:ofbiz"/>
>  52
>  53     <route id="encoderCategory-route">
>  54       <!-- 仅运行一次-->
>  55       <from uri="timer://foo?repeatCount=1"/>
>  56       <to 
> uri="sql:{{sql.selectCategory}}?outputClass=com.ofbizian.CategoryBean"/>
>  57       <log message="${in.body.mainid} :: ${in.body.typename} :: 
> ${in.body.typeparent}"/>
>  58       <setHeader headerName="Ofbiz.ServiceName">
>  59         <constant>createEncoderCategory</constant>
>  60       </setHeader>
>  61       <setHeader headerName="Ofbiz.Param.productCategoryId">
>  62         <simple>${in.body.mainid}</simple>
>  63       </setHeader>
>  64       <setHeader headerName="Ofbiz.Param.categoryName">
>  65         <simple>${in.body.typename}</simple>
>  66       </setHeader>
>  67       <setHeader headerName="Ofbiz.Param.parentProductCategoryId">
>  68         <simple>${in.body.typeparent}</simple>
>  69       </setHeader>
>  70       <setHeader headerName="Ofbiz.Param.primaryParentCategoryId">
>  71         <simple>${in.body.typeparent}</simple>
>  72       </setHeader>
>  73       <setHeader headerName="Ofbiz.Param.productCategoryTypeId">
>  74         <constant>CATALOG_CATEGORY</constant>
>  75       </setHeader>
>  76       <process ref="ofbizDispatcher"/>
>  77     </route>
>  78     <route>
>  79       <from uri="direct:ofbiz"/>
>  80       <to uri="rmi://192.168.36.20:1099/RMIDispatcher"/>
>  81       <log message="ofbiz create note:${body}"/>
>  82     </route>
>  83     <!-- END SNIPPET: e2 -->
>  84 </camelContext>
>  85 </beans>
> -------------------------------------------------------------------------------
> CategoryBean.java
>   1 package com.ofbizian;
>   2
>   3 public class CategoryBean{
>   4 private String mainid;
>   5 private String typename;
>   6 private String typeparent;
>   7 private String typecategory;
>   8
>   9 public String getMainid(){
>  10   return mainid;
>  11 }
>  12
>  13 public void setMainid(String mainid){
>  14   this.mainid=mainid;
>  15 }
>  16
>  17 public String getTypename(){
>  18   return typename;
>  19 }
>  20
>  21 public void setTypename(String typename){
>  22   this.typename=typename;
>  23 }
>  24
>  25 public String getTypeparent(){
>  26   return typeparent;
>  27 }
>  28
>  29 public void setTypeparent(String typeparent){
>  30   this.typeparent=typeparent;
>  31 }
>  32
>  33 public String getTypecategory(){
>  34   return typecategory;
>  35 }
>  36
>  37 public void setTypecategory(){
>  38   this.typecategory=typecategory;
>  39 }
>  40 }
>                                                       
> Message History
> ---------------------------------------------------------------------------------------------------------------------------------------
> RouteId              ProcessorId          Processor                           
>                                              Elapsed (ms)
> [encoderCategory-ro] [encoderCategory-ro] [timer://foo?repeatCount=1          
>                                            ] [      1256]
> [encoderCategory-ro] [to1               ] [sql:select 
> MAINID,TYPENAME,TYPEPARENT,TYPECATEGORY  from spg_material_type whe] [      
> 1162]
> [encoderCategory-ro] [log1              ] [log                                
>                                            ] [        81]
> Exchange
> ---------------------------------------------------------------------------------------------------------------------------------------
> Exchange[
>         Id                  ID-localhost-localdomain-59312-1432288083959-0-2
>         ExchangePattern     InOnly
>         Headers             
> {breadcrumbId=ID-localhost-localdomain-59312-1432288083959-0-1, 
> CamelRedelivered=false, CamelRedeliveryCounter=0, CamelSqlRowCount=16, 
> firedTime=Fri May 22 17:48:06 CST 2015}
>         BodyType            java.util.ArrayList
>         Body                [com.ofbizian.CategoryBean@bbf16e, 
> com.ofbizian.CategoryBean@e79a45, com.ofbizian.CategoryBean@14135cf, 
> com.ofbizian.CategoryBean@33d7d7, com.ofbizian.CategoryBean@19f6fa4, 
> com.ofbizian.CategoryBean@5a8b48, com.ofbizian.CategoryBean@6e273a, 
> com.ofbizian.CategoryBean@1d1627e, com.ofbizian.CategoryBean@1997685, 
> com.ofbizian.CategoryBean@343d90, com.ofbizian.CategoryBean@1b5c453, 
> com.ofbizian.CategoryBean@6c45d2, com.ofbizian.CategoryBean@5bf9e7, 
> com.ofbizian.CategoryBean@73ed80, com.ofbizian.CategoryBean@ed93a9, 
> com.ofbizian.CategoryBean@179565e]
> ]
> Stacktrace
> ---------------------------------------------------------------------------------------------------------------------------------------
> org.apache.camel.language.bean.RuntimeBeanExpressionException: Failed to 
> invoke method: .mainid on null due to: 
> org.apache.camel.language.bean.RuntimeBeanExpressionException: Failed to 
> invoke method: mainid on null due to: 
> org.apache.camel.component.bean.MethodNotFoundException: Method with name: 
> mainid not found on bean: [com.ofbizian.CategoryBean@bbf16e, 
> com.ofbizian.CategoryBean@e79a45, com.ofbizian.CategoryBean@14135cf, 
> com.ofbizian.CategoryBean@33d7d7, com.ofbizian.CategoryBean@19f6fa4, 
> com.ofbizian.CategoryBean@5a8b48, com.ofbizian.CategoryBean@6e273a, 
> com.ofbizian.CategoryBean@1d1627e, com.ofbizian.CategoryBean@1997685, 
> com.ofbizian.CategoryBean@343d90, com.ofbizian.CategoryBean@1b5c453, 
> com.ofbizian.CategoryBean@6c45d2, com.ofbizian.CategoryBean@5bf9e7, 
> com.ofbizian.CategoryBean@73ed80, com.ofbizian.CategoryBean@ed93a9, 
> com.ofbizian.CategoryBean@179565e] of type: java.util.ArrayList. 
> Exchange[Message: [com.ofbizian.CategoryBean@bbf16e, 
> com.ofbizian.CategoryBean@e79a45, com.ofbizian.CategoryBean@14135cf, 
> com.ofbizian.CategoryBean@33d7d7, com.ofbizian.CategoryBean@19f6fa4, 
> com.ofbizian.CategoryBean@5a8b48, com.ofbizian.CategoryBean@6e273a, 
> com.ofbizian.CategoryBean@1d1627e, com.ofbizian.CategoryBean@1997685, 
> com.ofbizian.CategoryBean@343d90, com.ofbizian.CategoryBean@1b5c453, 
> com.ofbizian.CategoryBean@6c45d2, com.ofbizian.CategoryBean@5bf9e7, 
> com.ofbizian.CategoryBean@73ed80, com.ofbizian.CategoryBean@ed93a9, 
> com.ofbizian.CategoryBean@179565e]]
>         at 
> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:117)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to