Hello, Thanks for looking at this. When I compiled as a jar it worked but when I added the maven-war-plugin to deploy a war to tomcat I started having these problems. It all works fine in the report designer, I can "data preview" the pl/sql output and the war file compiles without error. <parameter name="GN_CONTRACT_ID" class="java.lang.Integer" isForPrompting="false"> </parameter> <parameter name="GN_MONTH" class="java.lang.String" isForPrompting="false"> </parameter> <parameter name="GN_YEAR" class="java.lang.Integer" isForPrompting="false"> </parameter> <parameter name="ORACLE_REF_CURSOR" class="java.sql.ResultSet" isForPrompting="false"/> <parameter name="GN_RPTNUM" class="java.lang.String" isForPrompting="false"> <parameterDescription><![CDATA[invoice Number]]></parameterDescription> <defaultValueExpression><![CDATA["30"]]></defaultValueExpression> </parameter> <queryString language="plsql"> <![CDATA[{call TIMESHEET.WEEKSUM_HOURS($P{GN_CONTRACT_ID},$P{GN_MONTH},$P{GN_YEAR},$P{ORACLE_REF_CURSOR})}]]> </queryString> ------------------------------------ I am using ojdbc7.jar from the oracle 12.1 instant client. I am using a 12.1.0.2 oracle database ----------------------------------- create or replace PROCEDURE WEEKSUM_HOURS ( P_CONTRACT_ID IN NUMBER, P_MONTH IN VARCHAR2, P_YEAR IN NUMBER, NEW_HOURS OUT SYS_REFCURSOR) IS BEGIN open NEW_HOURS for select b.work_dates WORK_DATES,b.sumhours SUMHOURS,a.rate RATE,RATE * SUMHOURS DOLLAR_TOTAL from timesheet.contracts a,( select to_char(startweek, 'Month DD, YYYY') || ' - ' || to_char(endweek, 'Month DD, YYYY') WORK_DATES,SUMHOURS,CONTRACT_ID from ( select contract_id,sum(hrs) sumhours,min(work_date) startweek,max(work_date) endweek,week_num from ( select contract_id,hrs,trunc( work_date ,'D') start_date,work_date, ceil(( 7+(trunc( work_date ,'D')-trunc(work_date,'MON')) )/7) || to_char(work_date,'MONYYYY') week_num from timesheet.hours_day_id ) where contract_id = P_CONTRACT_ID group by contract_id, week_num order by startweek ) where to_char(startweek,'MON') = P_MONTH and to_char(startweek,'YYYY')= P_YEAR ) b where a.contract_id = b.contract_id order by work_dates; END; ------------------------------ java.sql.Connection jasperConnect = trackerService.getConnect(); LOGGER.info("Finding the report"); JasperReport reporte = (JasperReport) JRLoader.loadObjectFromFile(getServletContext().getRealPath("rpt/invoice.jasper")); / *I had to add these lines */ JasperReportsContext jasperReportsContext = DefaultJasperReportsContext.getInstance(); JRPropertiesUtil jrPropertiesUtil = JRPropertiesUtil.getInstance(jasperReportsContext); jrPropertiesUtil.setProperty("net.sf.jasperreports.query.executer.factory.plsql", "net.sf.jasperreports.engine.query.PlSqlQueryExecuterFactory"); Map<String, Object> parametros = new HashMap<String, Object>(); parametros.put("GN_RPTNUM", request.getParameter("reportnumber")); parametros.put("GN_YEAR", Integer.valueOf(request.getParameter("reportyear"))); parametros.put("GN_MONTH", request.getParameter("reportmonth")); parametros.put("GN_CONTRACT_ID", Integer.valueOf(request.getParameter("reportcontractid"))); JasperPrint jasperPrint = JasperFillManager.fillReport(reporte, parametros,jasperConnect); LOGGER.info("Sending the file to pdf"); JasperExportManager.exportReportToPdfStream(jasperPrint,out);