0

我似乎能够获得除此之外的所有其他属性。当我查询此属性时,我在控制台中得到 DirectChildrenCount: null。

4

1 回答 1

0

假设您获取 DirectChildrenCount,接下来要验证的是您正在使用的 Java Rally REST 版本以及您在代码中指定的 WS API 版本。

这是一个打印出 DirectChildrenCount 的代码示例。

它使用 rally-rest-api-1.0.7.jar,它适用于最新的 WS API v2.0

如果您使用的是 rally-rest-api-1.0.6.jar,只要在代码中正确设置了 WS API 版本,它应该仍然可以工作,例如:

String wsapiVersion = "1.43";

如果您不指定版本或指定低于 1.39 的版本,则在使用 rally-rest-api-1.0.6.jar 时将返回 DirectChildrenCount: null。DirectChildrenCount 是在 1.39 中引入的。

如果您使用的是 rally-rest-api-1.0.7.jar,它默认为 WS API 的 v2.0,因此即使代码中没有设置 WS API 版本,下面的代码也将起作用并且返回 DirectChildrenCount。

public static void main(String[] args) throws URISyntaxException, IOException {

    // Create and configure a new instance of RallyRestApi

    String host = "https://rally1.rallydev.com";
    String username = "user@domain.com";
    String password = "secret";
    String wsapiVersion = "v2.0";
        String workspaceRef = "/workspace/1111";
    String projectRef = "/project/2222"; 
    String applicationName = "DirectChildrenCount";


        RallyRestApi restApi = new RallyRestApi(
                new URI(host),
                username,
                password);
        restApi.setWsapiVersion(wsapiVersion);
        restApi.setApplicationName(applicationName);   


        QueryRequest storyRequest = new QueryRequest("HierarchicalRequirement");
        storyRequest.setFetch(new Fetch("Name","DirectChildrenCount"));
        storyRequest.setWorkspace(workspaceRef);
        storyRequest.setQueryFilter(new QueryFilter("FormattedID", "=", "US16"));

        QueryResponse storyQueryResponse = restApi.query(storyRequest);
        JsonObject storyJsonObject = storyQueryResponse.getResults().get(0).getAsJsonObject();
        System.out.println(storyJsonObject.get("Name") + " DirectChildrenCount: " + storyJsonObject.get("DirectChildrenCount"));
    }
于 2013-07-09T22:48:33.790 回答