Data service: Fails to invoke a data service if the query has a mysql5 stored 
procedure call
--------------------------------------------------------------------------------------------

                 Key: WSAS-668
                 URL: http://wso2.org/jira/browse/WSAS-668
             Project: WSO2 WSAS
          Issue Type: Bug
          Components: data-services
         Environment: wsas2.2-qabuild2, jdk15, winxp
            Reporter: Charitha Kankanamge
         Assigned To: sumedha rubasinghe
            Priority: Critical


I'm getting the following error when trying to invoke a data service operation, 
if the query has a SP call.

org.apache.axis2.AxisFault: Exception occurred while trying to execute the SQL 
statement : call getEmployee(?)

        at org.wso2.ws.dataservice.DBUtils.getSelectResult(DBUtils.java:362)
        at org.wso2.ws.dataservice.DBUtils.getRDBMSResult(DBUtils.java:153)
        at org.wso2.ws.dataservice.DBUtils.processSQLQuery(DBUtils.java:101)
        at org.wso2.ws.dataservice.DBUtils.invoke(DBUtils.java:394)
        at 
org.wso2.ws.dataservice.DBMessageReceiver.invokeBusinessLogic(DBMessageReceiver.java:41)
        at 
org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.invokeBusinessLogic(AbstractInOutSyncMessageReceiver.java:42)
        at 
org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:148)
        at 
org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:135)
        at 
org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:129)
        at 
org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:803)
        at 
org.wso2.wsas.transport.WSASServlet.handleRestRequest(WSASServlet.java:149)
        at org.wso2.wsas.transport.WSASServlet.doGet(WSASServlet.java:138)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.wso2.adminui.AdminUIServletFilter.doFilter(AdminUIServletFilter.java:142)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
        at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: PROCEDURE employeedb.getEmployee can't return 
a result set in the given context
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1997)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1167)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1278)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:2251)
        at 
com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1586)
        at org.wso2.ws.dataservice.DBUtils.getSelectResult(DBUtils.java:251)
        ... 31

Given below is the relevant data service query.

<query id="StoredprocQuery">
<sql>call getEmployee(?)</sql>
<result element="employees" rowName="employee">
<element name="id" column="id" />
<element name="name" column="name" />
<element name="address" column="address" />
</result>
<param name="empid" sqlType="INTEGER" />
</query>

<operation name="getEmpusingSP">
<call-query href="StoredprocQuery">
<with-param name="id" query-param="empid" />
</call-query>
</operation>

And, here is my SP.
mysql> CREATE PROCEDURE getEmployee(empid INTEGER) select id, name, address 
from employee where id=empid;


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://wso2.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

_______________________________________________
Wsas-java-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/wsas-java-dev

Reply via email to