0

我正在为 TeamCity 创建一个用于 Rally 的集成工具,并使用 Java REST API。当我尝试创建类型为“build”的对象时,我得到了一个由 restAPI 引发的异常,并出现 302“临时移动”错误。

我该如何处理?我在 Rally RestAPI 中看不到任何打开或关闭重定向的设置,并且 API 未处理重定向。

有什么建议么?

这是正在发布的代码。对 restAPI 的 create 调用会引发异常。对def.getWorkspace().getRefdef.getRef()的两次调用返回工作空间的 URL 和与此构建记录关联的构建定义条目(字符串是来自这些实体的“_ref”属性)。

try {
    JsonObject obj = new JsonObject();
    obj.addProperty("workspace", def.getWorkspace().getRef());
    obj.addProperty("buildDefinition",def.getRef());
    obj.addProperty("duration",1.05);
    obj.addProperty("message", "Message for the build");
    obj.addProperty("number","TEST0000");
    obj.addProperty("start", isoFormat.format(new Date()));
    obj.addProperty("status","Passed");
    obj.addProperty("uri", "http://teamcity.com");

    CreateRequest request = new CreateRequest("build", obj);
    request.setFetch(new Fetch("FormattedID,Name"));
    CreateResponse response = restAPI.create(request);
} catch (Exception e) {
    LOG.error("Could not create object of type: " + type, e);
}
4

1 回答 1

0

您是否成功地创建了其他对象/工件?你知道你有没有代理服务器吗?302 可能来自中间代理而不是拉力赛。如果您有代理,您可以执行以下操作:

restAPI.setProxy("https://myproxy","myproxyuser","myproxypassword");

为您的 REST 连接设置代理。除此之外,还有一些评论:

  1. “状态”的有效值为 [SUCCESS, FAILURE, INCOMPLETE, UNKNOWN, NO BUILDS]
  2. 无需对 CreateRequest 执行 setFetch - Fetch 参数仅用于查询。

我希望这有帮助。

于 2013-04-18T15:49:26.807 回答