调用接口导出报表 PDF 报错:索引中丢失 IN 或 OUT 参数:: 1

//———- 核心代码————-
Context cxt = new Context();
// 设置数据库连接
Connection con = null;
try {
Driver driver = (Driver) Class.forName(dbDrive).newInstance();
DriverManager.registerDriver(driver);
con = DriverManager.getConnection(conUrl, dbUsername, dbPassword);
} catch (Exception e) {
e.printStackTrace();
}
String defDsName = reportDesignDbName;
// 设置数据源
if (defDsName != null) cxt.setConnection(defDsName, con);
// 读入报表
ReportDefine rd = (ReportDefine) ReportUtils.read(sourcefilepath);
// 设置参数
if(pmd != null){
for(int i = 0, count = pmd.getParamCount(); i < count; i ++ ) {
String paramOrMocrName = pmd.getParam(i).getParamName(); // 获取参数名
cxt.setParamValue(paramOrMocrName, mapPar.get(paramOrMocrName)); // 设参数值
}}

// 启动报表运算
Engine engine = new Engine(rd, cxt);
IReport iReport = engine.calc();
// 导出 PDF
ReportUtils.exportToPDF(fileName, iReport);

//——————–日志—————————-
[2023-08-14 11:18:53]
INFO: 开始运算报表,首先取数……

[2023-08-14 11:18:53]
DEBUG: 下面开始打出 sql

[2023-08-14 11:18:53]
DEBUG: proc arg count:2

[2023-08-14 11:18:53]
DEBUG: ds1={call testreport(?,?)}

[2023-08-14 11:18:53]
DEBUG: arg1: COS

索引中丢失 IN 或 OUT 参数:: 1
错误来源:索引中丢失 IN 或 OUT 参数:: 1

请教:存储过程 testreport(?,?) 第一个是输出的游标,第二个是入参。设置参数那个位置只取到了一个参数,日志打印“proc arg count:2”,请问是不是设置参数那里代码写的有问题,改怎么写?