You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jira REST API设置测试计划测试用例自定义字段报错求助

解决JIRA测试计划字段写入CannotTransformValueException问题

问题核心:你读取到的org.codehaus.jettison.json.JSONArray类型,JIRA REST Client的ValueTransformerManager没有对应的转换器,无法直接用于字段赋值。测试计划的测试用例字段(customfield_17473)本质是多值问题引用字段,需要转换成客户端能识别的结构。

解决方案

将JSONArray中的测试用例Key转换成包含key字段的Map集合,或者直接使用JIRA REST Client提供的IssueRef对象,再传入setFieldValue方法。

修改后的代码示例

import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONException;
import com.atlassian.jira.rest.client.api.domain.IssueRef;
import java.util.ArrayList;
import java.util.List;

public void updateIssue(String issueKey, String fieldId, Object fieldValue) {
    Object transformedValue = fieldValue;

    if (fieldValue instanceof JSONArray) {
        JSONArray issueKeysArray = (JSONArray) fieldValue;
        List<IssueRef> issueRefs = new ArrayList<>();
        try {
            for (int i = 0; i < issueKeysArray.length(); i++) {
                String testCaseKey = issueKeysArray.getString(i);
                // 用IssueRef封装测试用例Key,JIRA客户端能识别该类型
                issueRefs.add(new IssueRef(null, testCaseKey, null));
            }
            transformedValue = issueRefs;
        } catch (JSONException e) {
            throw new RuntimeException("解析测试用例Key失败", e);
        }
    }

    IssueInput input = new IssueInputBuilder()
            .setFieldValue(fieldId, transformedValue)
            .build();
    restClient.getIssueClient()
            .updateIssue(issueKey, input)
            .claim();
}

如果不想依赖IssueRef,也可以用Map结构替代:

// 替换上面的IssueRef部分
import java.util.HashMap;
import java.util.Map;

List<Map<String, Object>> issueRefs = new ArrayList<>();
// ...
Map<String, Object> issueMap = new HashMap<>();
issueMap.put("key", testCaseKey);
issueRefs.add(issueMap);

原理说明

JIRA REST API接受的问题引用格式是包含key(或id)字段的JSON对象数组,而JIRA REST Client的转换器只识别特定的Java类型(如IssueRef、List<Map<String, Object>>),无法直接处理第三方JSON库的JSONArray对象。通过转换为客户端支持的类型,就能绕过转换器不兼容的问题。

内容的提问来源于stack exchange,提问作者Jefe infiltrado

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 12:01:12