[
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)