错误 无效:参数索引超出范围 -4461 42815

本文介绍了一个关于MyBatis在使用XML配置文件时出现的常见错误:由于多余的逗号导致的问题。通过一个具体的例子展示了如何定位并解决此类配置错误。

mybatis 调用方法时报该错误
经过检查,发现是在循环中,open与close加入了逗号导致。

  <!--如果是list<String> 无需协助其进行逗号补充-->
  <foreach collection="templist" index="index" item="item" open="('" separator="," close="')">
            #{item}
 </foreach>

PS:如果有类似错误,前检查xml中多余引号。

@startuml autonumber actor Web participant "vms-api gateway" as apigateway participant "vms-manager" as manager database "Redis缓存" as redis == 查询任务结果 == Web -> apigateway : 通过UI判断发起哪种查询方式 alt Web请求列表查询 Web -> apigateway : POST /api/v1/vms/{vmsId}/websocket/result/{sn}/list apigateway -> apigateway : 参数校验 alt 参数无效 apigateway --> Web : 返回失败结果 note left of apigateway { "errorCode": -51207, "message": "Invalid parameters.", "result": null } end note else 参数有效 apigateway -> manager : 列表查询请求 manager -> redis : 查询缓存\nKEYS "websocket:result:{vmsId}:{sn}" alt 缓存命中 redis --> manager : 返回缓存数据 manager -> manager : 数据反序列化 else 缓存未命中 redis --> manager : 返回空 manager -> manager : 记录缓存穿透日志 manager --> apigateway : 返回查询失败信息 apigateway --> Web : 返回查询失败信息 end manager -> manager : 过滤无效设备\n(如重复ID/格式错误) manager --> apigateway : 返回完整列表结果 note left of apigateway { "errorCode": 0, "message": "success", "result": { "success": a, "fail": b, "total": c, "content": [...] // 全部数据(无分页信息) } } end note apigateway --> Web : 返回列表数据 end else Web请求分页查询 Web -> apigateway : POST /api/v1/vms/{vmsId}/websocket/result/{sn}/page note right of Web 请求体携带分页参数: { "page":{ "number": 0, "size": 10 } } end note apigateway -> apigateway : 参数校验 alt 参数无效 apigateway --> Web : 返回失败结果(同上) else 参数有效 apigateway -> manager : 分页查询请求 manager -> redis : 查询缓存\nKEYS "websocket:result:{vmsId}:{sn}" alt 缓存命中 redis --> manager : 返回缓存数据 manager -> manager : 数据反序列化 else 缓存未命中 redis --> manager : 返回空 manager -> manager : 记录缓存穿透日志 manager --> apigateway : 返回查询失败信息 apigateway --> Web : 返回查询失败信息 end manager -> manager : 过滤无效设备 manager -> manager : 执行分页逻辑\n根据number/size参数截取数据 manager --> apigateway : 返回分页结果 note left of apigateway { "errorCode": 0, "message": "success", "result": { "success": a, "fail": b, "total": c, "content": [...], // 当前页数据 "page": { "first": true, "last": false, "number": 0, ... } } } end note apigateway --> Web : 返回分页数据 end end @enduml 我修改了一下,对 manager -> manager : 执行分页逻辑\n根据number/size参数截取数据这一行还能再细化下吗
09-26
2025-08-18 11:25:38,860 - 10.13.36.101 - TestbedConfig - DEBUG - Testbed config file is: CDENT_BVT_SMBRouter\config.db 2025-08-18 11:25:38,862 - 10.13.36.101 - pysat.core.sat_test - TESTCASE - ----Test case FG999998 start---- 2025-08-18 11:25:38,876 - 10.13.36.101 - pysat.core.sat_test - INFO - Testcase Name: cdent_class_test 2025-08-18 11:25:38,876 - 10.13.36.101 - pysat.core.sat_test - INFO - Testcase Version: 202306271536 2025-08-18 11:25:38,877 - 10.13.36.101 - pysat.core.sat_test - INFO - Testcase Author: zhaohongmei@tp-link.com.hk 2025-08-18 11:25:38,877 - 10.13.36.101 - Test - INFO - test case start: FG999998__cdent_class_test 2025-08-18 11:25:38,878 - 10.13.36.101 - Test - INFO - 前置操作:从数据库中读取预期的参数信息 2025-08-18 11:25:38,878 - 10.13.36.101 - Test - INFO - nic_ip 10.13.36.101 2025-08-18 11:25:41,382 - 10.13.36.101 - WindowsNetConfig - DEBUG - adapter status: Enable(2) 2025-08-18 11:25:44,242 - 10.13.36.101 - WindowsNetConfig - DEBUG - ip list: [{'ip': '10.13.36.101', 'mask': '255.255.255.0'}] 2025-08-18 11:25:44,242 - 10.13.36.101 - Test - STEP - 步骤1: 读取当前pc网卡的IP/MASK/gateway/dns信息 2025-08-18 11:25:44,726 - 10.13.36.101 - WindowsNetConfig - DEBUG - adapter status: Enable(2) 2025-08-18 11:25:47,596 - 10.13.36.101 - WindowsNetConfig - DEBUG - ip list: [{'ip': '10.13.36.101', 'mask': '255.255.255.0'}] 2025-08-18 11:25:49,429 - 10.13.36.101 - ResultInfo - DEBUG - Add result item info:{"item_id": "DefaultItem", "passfail": "Fail", "comment": "Test fail: list index out of range", "actual": "", "expected": ""} 2025-08-18 11:25:49,431 - 10.13.36.101 - Test - ERROR - Test break: Test fail: list index out of range 2025-08-18 11:25:49,431 - 10.13.36.101 - Test - ERROR - The testcase aborted: Test fail: list index out of range 2025-08-18 11:25:49,433 - 10.13.36.101 - ResultInfo - DEBUG - Add result item info:{"item_id": "DefaultItem", "passfail": "Fail", "comment": "The testcase aborted: Test fail: list index out of range", "actual": "", "expected": ""} 2025-08-18 11:25:49,433 - 10.13.36.101 - Test - INFO - Clean test start... 2025-08-18 11:25:49,435 - 10.13.36.101 - Test - INFO - [clean_test] start to clean test... 2025-08-18 11:25:49,435 - 10.13.36.101 - pysat.core.sat_test - INFO - Start Time: 11:25:38 2025-08-18 11:25:49,437 - 10.13.36.101 - pysat.core.sat_test - INFO - End Time: 11:25:49 2025-08-18 11:25:49,437 - 10.13.36.101 - pysat.core.sat_test - INFO - Elapsed Time: 11s 2025-08-18 11:25:49,437 - 10.13.36.101 - pysat.core.sat_test - INFO - Test Result: Fail 2025-08-18 11:25:49,437 - 10.13.36.101 - pysat.core.sat_test - INFO - Test Comment: DefaultItem:Fail,The testcase aborted: Test fail: list index out of range 2025-08-18 11:25:51,449 - 10.13.36.101 - pysat.core.sat_test - TESTCASE - ----Test case FG999998 end----
08-19
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值