You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by onders <on...@gmail.com> on 2016/04/04 16:51:15 UTC
DefaultSqlPrepareStatementStrategy lookupParameter when onConsume
used in SQL component
Hi,
I have a simple route as the following;
from("sql:select rowid vrow_id from myTable where nstatus = 0" +
MyBean.class.getName()
+ "&onConsume=update myTable set nstatus = 1 where VROW_ID =
:#${body.vrow_id}")
.routeId("mySimpleRoute")
.threads(5).to("direct:generateLine")
.end();
When i run such route, onConsume fails to update the row by giving the
stacktrace below;
(Please note that MyBean has the right attributes and setters and getters..)
org.apache.camel.language.bean.RuntimeBeanExpressionException: Failed to
invoke method: vrow_id on null due to:
org.apache.camel.component.bean.MethodNotFoundException: Method with name:
vrow_id not found on bean: MyBean[vrow_id=AAAGsJAAEAAApayAAE]
of type: java.lang.String. Exchange[]
at
org.apache.camel.language.bean.BeanExpression$OgnlInvokeProcessor.process(BeanExpression.java:321)
at
org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:114)
at
org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:138)
at
org.apache.camel.model.language.ExpressionDefinition.evaluate(ExpressionDefinition.java:126)
at
org.apache.camel.model.language.ExpressionDefinition.evaluate(ExpressionDefinition.java:118)
at
org.apache.camel.builder.ExpressionBuilder$34.evaluate(ExpressionBuilder.java:852)
at
org.apache.camel.support.ExpressionAdapter.evaluate(ExpressionAdapter.java:36)
at
org.apache.camel.component.sql.DefaultSqlPrepareStatementStrategy.lookupParameter(DefaultSqlPrepareStatementStrategy.java:200)
at
org.apache.camel.component.sql.DefaultSqlPrepareStatementStrategy$PopulateIterator.next(DefaultSqlPrepareStatementStrategy.java:267)
at
org.apache.camel.component.sql.DefaultSqlPrepareStatementStrategy.populateStatement(DefaultSqlPrepareStatementStrategy.java:129)
at
org.apache.camel.component.sql.DefaultSqlProcessingStrategy$1.doInPreparedStatement(DefaultSqlProcessingStrategy.java:52)
at
org.apache.camel.component.sql.DefaultSqlProcessingStrategy$1.doInPreparedStatement(DefaultSqlProcessingStrategy.java:46)
at
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:629)
at
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:658)
at
org.apache.camel.component.sql.DefaultSqlProcessingStrategy.commit(DefaultSqlProcessingStrategy.java:46)
at
org.apache.camel.component.sql.SqlConsumer.processBatch(SqlConsumer.java:240)
at
org.apache.camel.component.sql.SqlConsumer$1.doInPreparedStatement(SqlConsumer.java:137)
at
org.apache.camel.component.sql.SqlConsumer$1.doInPreparedStatement(SqlConsumer.java:110)
at
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:629)
at
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:658)
at
org.apache.camel.component.sql.SqlConsumer.poll(SqlConsumer.java:149)
at
org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:175)
at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:102)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.apache.camel.component.bean.MethodNotFoundException: Method
with name: vrow_id not found on bean: MyBean [vrow_id=AAAGsJAAEAAApayAAE]
of type: java.lang.String. Exchange[]
at
org.apache.camel.component.bean.BeanInfo.createInvocation(BeanInfo.java:271)
at
org.apache.camel.component.bean.BeanInfo.createInvocation(BeanInfo.java:185)
at
org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:159)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
at
org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:68)
at
org.apache.camel.language.bean.BeanExpression$InvokeProcessor.process(BeanExpression.java:211)
at
org.apache.camel.language.bean.BeanExpression$OgnlInvokeProcessor.process(BeanExpression.java:317)
... 29 more
I tracked down the issue and found out that
in DefaultSqlPrepareStatementStrategy class the implementation on the
following method
protected static Object lookupParameter(String nextParam, Exchange
exchange, Object body) {
Map<?, ?> bodyMap =
safeMap(exchange.getContext().getTypeConverter().tryConvertTo(Map.class,
body));
can not do the right conversion from MyBean to Map.class.
Is there anyone facing a similar issue and being able to get around the
problem?
Cheers
Önder
--
View this message in context: http://camel.465427.n5.nabble.com/DefaultSqlPrepareStatementStrategy-lookupParameter-when-onConsume-used-in-SQL-component-tp5780437.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: DefaultSqlPrepareStatementStrategy lookupParameter when
onConsume used in SQL component
Posted by onders <on...@gmail.com>.
thanks for the guidance.
--
View this message in context: http://camel.465427.n5.nabble.com/DefaultSqlPrepareStatementStrategy-lookupParameter-when-onConsume-used-in-SQL-component-tp5780437p5780671.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: DefaultSqlPrepareStatementStrategy lookupParameter when onConsume
used in SQL component
Posted by Claus Ibsen <cl...@gmail.com>.
The onConsume is run when the exchange is complete at the end,
whatever that means routing over threads and whatnot.
If you want to break up your route into 2 lets, then consider using
wire-tap to fork of a separeted copy that is indepdenent.
On Thu, Apr 7, 2016 at 12:12 PM, onders <on...@gmail.com> wrote:
> Hmm.. I think i misunderstood the route conceptually.
>
> What i thought was that below is a single route;
>
> from("sql:select rowid vrowid from myTable where nstatus = 0?outputClass=" +
> MyBean.class.getName()
> + "&onConsume=update myTable set nstatus = 1 where rowid =
> :#${body.getVrowid()}")
>
> .routeId("mySimpleRoute").threads(5).to("direct:generateLine").end();
>
>
> and the exchange becomes complete when we do
>
> ...
> ...
> // piece of code above
> .to("direct:generateLine").end();
>
> and another route is
>
> from("direct:generateLine").process(new
> LineGenerator()).to("amq:queue:jms.simpleQueue");
>
> So i expected onConsume receives MyBean as the body of exchange;
> But you are saying that exhange is complete after this line
>
>>> from("direct:generateLine").process(new
>>> LineGenerator()).to("amq:queue:jms.simpleQueue");
>
> so onConsume receives whatever is set as the body of exchange in the
> instance of LineGenerator.
>
> I think i am confused?
>
> Could you please help me understand what makes up the route?
>
> Regards
> Önder
>
>
>
>
>
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/DefaultSqlPrepareStatementStrategy-lookupParameter-when-onConsume-used-in-SQL-component-tp5780437p5780663.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2
Re: DefaultSqlPrepareStatementStrategy lookupParameter when
onConsume used in SQL component
Posted by onders <on...@gmail.com>.
Hmm.. I think i misunderstood the route conceptually.
What i thought was that below is a single route;
from("sql:select rowid vrowid from myTable where nstatus = 0?outputClass=" +
MyBean.class.getName()
+ "&onConsume=update myTable set nstatus = 1 where rowid =
:#${body.getVrowid()}")
.routeId("mySimpleRoute").threads(5).to("direct:generateLine").end();
and the exchange becomes complete when we do
...
...
// piece of code above
.to("direct:generateLine").end();
and another route is
from("direct:generateLine").process(new
LineGenerator()).to("amq:queue:jms.simpleQueue");
So i expected onConsume receives MyBean as the body of exchange;
But you are saying that exhange is complete after this line
>> from("direct:generateLine").process(new
>> LineGenerator()).to("amq:queue:jms.simpleQueue");
so onConsume receives whatever is set as the body of exchange in the
instance of LineGenerator.
I think i am confused?
Could you please help me understand what makes up the route?
Regards
Önder
--
View this message in context: http://camel.465427.n5.nabble.com/DefaultSqlPrepareStatementStrategy-lookupParameter-when-onConsume-used-in-SQL-component-tp5780437p5780663.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: DefaultSqlPrepareStatementStrategy lookupParameter when onConsume
used in SQL component
Posted by Claus Ibsen <cl...@gmail.com>.
Ah yeah that is intended. The onConsume runs after the exchange is
complete. So you need to store the id somewhere in a header or
something if you modify the message body.
.setHeader("rowId").simple("${body.vrow_id}")
.threads...
And then use the header in the onConsume
On Thu, Apr 7, 2016 at 9:46 AM, onders <on...@gmail.com> wrote:
> no, this does not help :(
>
> when i debug, interestingly i can see onConsume gets exhange's body as the
> output of bean bound on from("direct:generateLine"...) route which is
> LineGenerator..
>
> from("sql:select rowid vrowid from myTable where nstatus = 0?outputClass=" +
> MyBean.class.getName()
> + "&onConsume=update myTable set nstatus = 1 where rowid =
> :#${body.getVrowid()}")
>
> .routeId("mySimpleRoute").threads(5).to("direct:generateLine").end();
>
> from("direct:generateLine").process(new
> LineGenerator()).to("amq:queue:jms.simpleQueue");
>
> org.apache.camel.language.bean.RuntimeBeanExpressionException: Failed to
> invoke method: getVrowid() on null due to:
> org.apache.camel.component.bean.MethodNotFoundException: Method with name:
> getVrowid() not found on bean: testField1|textField2|
> of type: java.lang.String. Exchange[]
> at
> org.apache.camel.language.bean.BeanExpression$OgnlInvokeProcessor.process(BeanExpression.java:321)
> at
> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:114)
> at
> org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:138)
> at
> org.apache.camel.model.language.ExpressionDefinition.evaluate(ExpressionDefinition.java:126)
> at
> org.apache.camel.model.language.ExpressionDefinition.evaluate(ExpressionDefinition.java:118)
> at
> org.apache.camel.builder.ExpressionBuilder$34.evaluate(ExpressionBuilder.java:852)
> at
> org.apache.camel.support.ExpressionAdapter.evaluate(ExpressionAdapter.java:36)
> at
> org.apache.camel.component.sql.DefaultSqlPrepareStatementStrategy.lookupParameter(DefaultSqlPrepareStatementStrategy.java:200)
> at
> org.apache.camel.component.sql.DefaultSqlPrepareStatementStrategy$PopulateIterator.next(DefaultSqlPrepareStatementStrategy.java:267)
> at
> org.apache.camel.component.sql.DefaultSqlPrepareStatementStrategy.populateStatement(DefaultSqlPrepareStatementStrategy.java:129)
> at
> org.apache.camel.component.sql.DefaultSqlProcessingStrategy$1.doInPreparedStatement(DefaultSqlProcessingStrategy.java:52)
> at
> org.apache.camel.component.sql.DefaultSqlProcessingStrategy$1.doInPreparedStatement(DefaultSqlProcessingStrategy.java:46)
> at
> org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:629)
> at
> org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:658)
> at
> org.apache.camel.component.sql.DefaultSqlProcessingStrategy.commit(DefaultSqlProcessingStrategy.java:46)
> at
> org.apache.camel.component.sql.SqlConsumer.processBatch(SqlConsumer.java:240)
> at
> org.apache.camel.component.sql.SqlConsumer$1.doInPreparedStatement(SqlConsumer.java:137)
> at
> org.apache.camel.component.sql.SqlConsumer$1.doInPreparedStatement(SqlConsumer.java:110)
> at
> org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:629)
> at
> org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:658)
> at
> org.apache.camel.component.sql.SqlConsumer.poll(SqlConsumer.java:149)
> at
> org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:175)
> at
> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:102)
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:744)
> Caused by: org.apache.camel.component.bean.MethodNotFoundException: Method
> with name: getVrowid() not found on bean: testField1|textField2|
> of type: java.lang.String. Exchange[]
> at
> org.apache.camel.component.bean.BeanInfo.createInvocation(BeanInfo.java:271)
> at
> org.apache.camel.component.bean.BeanInfo.createInvocation(BeanInfo.java:185)
> at
> org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:159)
> at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
> at
> org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:68)
> at
> org.apache.camel.language.bean.BeanExpression$InvokeProcessor.process(BeanExpression.java:211)
> at
> org.apache.camel.language.bean.BeanExpression$OgnlInvokeProcessor.process(BeanExpression.java:317)
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/DefaultSqlPrepareStatementStrategy-lookupParameter-when-onConsume-used-in-SQL-component-tp5780437p5780645.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2
Re: DefaultSqlPrepareStatementStrategy lookupParameter when
onConsume used in SQL component
Posted by onders <on...@gmail.com>.
no, this does not help :(
when i debug, interestingly i can see onConsume gets exhange's body as the
output of bean bound on from("direct:generateLine"...) route which is
LineGenerator..
from("sql:select rowid vrowid from myTable where nstatus = 0?outputClass=" +
MyBean.class.getName()
+ "&onConsume=update myTable set nstatus = 1 where rowid =
:#${body.getVrowid()}")
.routeId("mySimpleRoute").threads(5).to("direct:generateLine").end();
from("direct:generateLine").process(new
LineGenerator()).to("amq:queue:jms.simpleQueue");
org.apache.camel.language.bean.RuntimeBeanExpressionException: Failed to
invoke method: getVrowid() on null due to:
org.apache.camel.component.bean.MethodNotFoundException: Method with name:
getVrowid() not found on bean: testField1|textField2|
of type: java.lang.String. Exchange[]
at
org.apache.camel.language.bean.BeanExpression$OgnlInvokeProcessor.process(BeanExpression.java:321)
at
org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:114)
at
org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:138)
at
org.apache.camel.model.language.ExpressionDefinition.evaluate(ExpressionDefinition.java:126)
at
org.apache.camel.model.language.ExpressionDefinition.evaluate(ExpressionDefinition.java:118)
at
org.apache.camel.builder.ExpressionBuilder$34.evaluate(ExpressionBuilder.java:852)
at
org.apache.camel.support.ExpressionAdapter.evaluate(ExpressionAdapter.java:36)
at
org.apache.camel.component.sql.DefaultSqlPrepareStatementStrategy.lookupParameter(DefaultSqlPrepareStatementStrategy.java:200)
at
org.apache.camel.component.sql.DefaultSqlPrepareStatementStrategy$PopulateIterator.next(DefaultSqlPrepareStatementStrategy.java:267)
at
org.apache.camel.component.sql.DefaultSqlPrepareStatementStrategy.populateStatement(DefaultSqlPrepareStatementStrategy.java:129)
at
org.apache.camel.component.sql.DefaultSqlProcessingStrategy$1.doInPreparedStatement(DefaultSqlProcessingStrategy.java:52)
at
org.apache.camel.component.sql.DefaultSqlProcessingStrategy$1.doInPreparedStatement(DefaultSqlProcessingStrategy.java:46)
at
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:629)
at
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:658)
at
org.apache.camel.component.sql.DefaultSqlProcessingStrategy.commit(DefaultSqlProcessingStrategy.java:46)
at
org.apache.camel.component.sql.SqlConsumer.processBatch(SqlConsumer.java:240)
at
org.apache.camel.component.sql.SqlConsumer$1.doInPreparedStatement(SqlConsumer.java:137)
at
org.apache.camel.component.sql.SqlConsumer$1.doInPreparedStatement(SqlConsumer.java:110)
at
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:629)
at
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:658)
at
org.apache.camel.component.sql.SqlConsumer.poll(SqlConsumer.java:149)
at
org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:175)
at
org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:102)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.apache.camel.component.bean.MethodNotFoundException: Method
with name: getVrowid() not found on bean: testField1|textField2|
of type: java.lang.String. Exchange[]
at
org.apache.camel.component.bean.BeanInfo.createInvocation(BeanInfo.java:271)
at
org.apache.camel.component.bean.BeanInfo.createInvocation(BeanInfo.java:185)
at
org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:159)
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
at
org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:68)
at
org.apache.camel.language.bean.BeanExpression$InvokeProcessor.process(BeanExpression.java:211)
at
org.apache.camel.language.bean.BeanExpression$OgnlInvokeProcessor.process(BeanExpression.java:317)
--
View this message in context: http://camel.465427.n5.nabble.com/DefaultSqlPrepareStatementStrategy-lookupParameter-when-onConsume-used-in-SQL-component-tp5780437p5780645.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: DefaultSqlPrepareStatementStrategy lookupParameter when onConsume
used in SQL component
Posted by Claus Ibsen <cl...@gmail.com>.
Oh so you are using _ in the getters, try with
:#${body.getVrow_id()}"
I wonder if the getter detection has a glitch when you use underscores.
On Thu, Apr 7, 2016 at 7:30 AM, onders <on...@gmail.com> wrote:
> Here it is;
>
> import java.io.Serializable;
>
> public class MyBean implements Serializable {
>
> /**
> *
> */
> private static final long serialVersionUID = 1L;
> private String vrow_id;
>
> public String getVrow_id() {
> return vrow_id;
> }
> public void setVrow_id(String vrow_id) {
> this.vrow_id = vrow_id;
> }
>
> }
>
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/DefaultSqlPrepareStatementStrategy-lookupParameter-when-onConsume-used-in-SQL-component-tp5780437p5780629.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2
Re: DefaultSqlPrepareStatementStrategy lookupParameter when
onConsume used in SQL component
Posted by onders <on...@gmail.com>.
Here it is;
import java.io.Serializable;
public class MyBean implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private String vrow_id;
public String getVrow_id() {
return vrow_id;
}
public void setVrow_id(String vrow_id) {
this.vrow_id = vrow_id;
}
}
--
View this message in context: http://camel.465427.n5.nabble.com/DefaultSqlPrepareStatementStrategy-lookupParameter-when-onConsume-used-in-SQL-component-tp5780437p5780629.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: DefaultSqlPrepareStatementStrategy lookupParameter when onConsume
used in SQL component
Posted by Claus Ibsen <cl...@gmail.com>.
What is the bean code for that bean ?
On Thu, Apr 7, 2016 at 7:22 AM, onders <on...@gmail.com> wrote:
> I think the code snippet i sent earlier had outputClass option missing.
> (I was playing it around).
>
> So what i meant to describe was as the following...
>
> from("sql:select rowid vrow_id from myTable where nstatus =
> 0?*outputClass=" + MyBean.class.getName()
> + "*&onConsume=update myTable set nstatus = 1 where VROW_ID
> = :#${body.vrow_id}")
>
> .routeId("mySimpleRoute").threads(5).to("direct:generateLine").end();
>
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/DefaultSqlPrepareStatementStrategy-lookupParameter-when-onConsume-used-in-SQL-component-tp5780437p5780627.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2
Re: DefaultSqlPrepareStatementStrategy lookupParameter when
onConsume used in SQL component
Posted by onders <on...@gmail.com>.
I think the code snippet i sent earlier had outputClass option missing.
(I was playing it around).
So what i meant to describe was as the following...
from("sql:select rowid vrow_id from myTable where nstatus =
0?*outputClass=" + MyBean.class.getName()
+ "*&onConsume=update myTable set nstatus = 1 where VROW_ID
= :#${body.vrow_id}")
.routeId("mySimpleRoute").threads(5).to("direct:generateLine").end();
--
View this message in context: http://camel.465427.n5.nabble.com/DefaultSqlPrepareStatementStrategy-lookupParameter-when-onConsume-used-in-SQL-component-tp5780437p5780627.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: DefaultSqlPrepareStatementStrategy lookupParameter when onConsume
used in SQL component
Posted by Claus Ibsen <cl...@gmail.com>.
The output from the from is a Map, so you should refer to the value by
referring to the column name.
where VROW_ID = :#vrow_id
On Thu, Apr 7, 2016 at 6:44 AM, onders <on...@gmail.com> wrote:
> Hi,
>
> This is the route code.
>
> from("sql:select rowid vrow_id from myTable where nstatus = 0" +
> MyBean.class.getName()
> + "&onConsume=update myTable set nstatus = 1 where VROW_ID =
> :#${body.vrow_id}")
> .routeId("mySimpleRoute").threads(5).to("direct:generateLine").end();
>
>
> In the following from("direct:generateLine"), I apply bean-binding and send
> myBean.toString() to a file...
>
> Thanks again
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/DefaultSqlPrepareStatementStrategy-lookupParameter-when-onConsume-used-in-SQL-component-tp5780437p5780624.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2
Re: DefaultSqlPrepareStatementStrategy lookupParameter when
onConsume used in SQL component
Posted by onders <on...@gmail.com>.
Hi,
This is the route code.
from("sql:select rowid vrow_id from myTable where nstatus = 0" +
MyBean.class.getName()
+ "&onConsume=update myTable set nstatus = 1 where VROW_ID =
:#${body.vrow_id}")
.routeId("mySimpleRoute").threads(5).to("direct:generateLine").end();
In the following from("direct:generateLine"), I apply bean-binding and send
myBean.toString() to a file...
Thanks again
--
View this message in context: http://camel.465427.n5.nabble.com/DefaultSqlPrepareStatementStrategy-lookupParameter-when-onConsume-used-in-SQL-component-tp5780437p5780624.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: DefaultSqlPrepareStatementStrategy lookupParameter when onConsume
used in SQL component
Posted by Claus Ibsen <cl...@gmail.com>.
Can you post the route code again - it seems you cut out some details
or it was formatted poorly.
On Wed, Apr 6, 2016 at 1:50 PM, onders <on...@gmail.com> wrote:
> Did anybody have a chance to look at it?
>
> Regards
> Önder
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/DefaultSqlPrepareStatementStrategy-lookupParameter-when-onConsume-used-in-SQL-component-tp5780437p5780585.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2
Re: DefaultSqlPrepareStatementStrategy lookupParameter when
onConsume used in SQL component
Posted by onders <on...@gmail.com>.
Did anybody have a chance to look at it?
Regards
Önder
--
View this message in context: http://camel.465427.n5.nabble.com/DefaultSqlPrepareStatementStrategy-lookupParameter-when-onConsume-used-in-SQL-component-tp5780437p5780585.html
Sent from the Camel - Users mailing list archive at Nabble.com.