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

Ramon van den Hoven commented on CAMEL-3066:
--------------------------------------------

Yes sorry, I was on holiday for a week.
It's hard to create a unit test for this one, since it connects to an oracle 
database.
I'm questioning if it is a camel issue, maybe it's a ibatis issue;


The statement: 
result = client.queryForObject(statement, in);
expects a statement: in my case a stored procedure:
{call lsuser.liq_vortex.LIQ_VORTEX_ALL_STRUCT(?,?,?,?,?)} 
The in parameter is a Map, where I defined the input parameters for the stored 
procedure
The last parameter in the Map is the out parameter. So my results are in the 
Map indeed and not in the return value of the method.
This way no results will be passed on in the camel route.
I will try to create a simple project.










> Result is empty after calling a stored procedure
> ------------------------------------------------
>
>                 Key: CAMEL-3066
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-3066
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-ibatis
>    Affects Versions: 2.4.0
>         Environment: Windows, eclipse, oracle
>            Reporter: Ramon van den Hoven
>
> When calling a stored procedure in the following form {call 
> lsuser.liq_vortex.LIQ_VORTEX_ALL_STRUCT(?,?,?,?,?)} where the last ? is an 
> OUT param, the result is null.
> See for comments in the following function in the  IbatisProducer class
> Look for the NOTE:
> private void doQueryForObject(Exchange exchange) throws Exception {
>         SqlMapClient client = endpoint.getSqlMapClient();
>         Object result;
>         Object in = exchange.getIn().getBody();
>         if (in != null) {
>             if (LOG.isTraceEnabled()) {
>                 LOG.trace("QueryForObject: " + in + "  using statement: " + 
> statement);
>             }
>             result = client.queryForObject(statement, in);
> NOTE: The in parameter has the resultset, in my case a HashMap, isn't it 
> always a Map?
> should be something like:
>         result = in.get(outParameterKey)
>         } else {
>             if (LOG.isTraceEnabled()) {
>                 LOG.trace("QueryForObject using statement: " + statement);
>             }
>             result = client.queryForObject(statement);
>         }
>         doProcessResult(exchange, result);
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to