使用Java对Rational Team Concert中的工作项进行信息读写

基于 Jazz 平台的 IBM® Rational Team Concert 提供了一个简洁的协作式生命周期管理解决方案。Rational Team Concert 的一个重要特性是它与外部系统集成的能力。每一个 Jazz 产品本身都具有用于读取和写入信息的 OSLC 服务,在 Jazz 和其他工具之间提供了简单的集成点。OSLC 使用 REST API 提供服务,因此,标准的标注可为每种语言和平台提供信息。本文演示了如何使用 Java 在 Rational Team Concert 中验证、连接、检索和存储信息。

使用 SSL 证书连接到 Rational Team Concert

在默认情况下,如果服务器被配置为使用安全套接字层(SSL),那么 Rational Team Concert 会使用自签名证书。在连接到 Rational Team Concert 之前,您必须接受自签名证书。为此,首先需要创建一个新的 TrustManager 对象,它通过检查有效期限、证书签名等来接受和验证 SSL 证书。

接下来,要创建一个新的 Array 对象,其中包含一个 TrustManager 实例,该示例实现了接口 X509TrustManager。请覆盖接口的方法,以确保没有执行验证检查。参见清单 1:

清单 1. 覆盖接口 X509TrustManager 的方法

public static void main(String[] args) throws ClientProtocolException, IOException, Key
ManagementException, NoSuchAlgorithmException { TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { public X509Certificate[] getAcceptedIssuers() { return null; } public void checkclientTrusted(X509Certificate[] certs, String authType) { // Leave blank to trust every client } public void checkServerTrusted(X509Certificate[] certs, String authType) { // Leave blank to trust every server } public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { // TODO Auto-generated method stub } } };

接下来,要创建一个 SSLContext 的实例:

SSLContext mySSLContext = SSLContext.getInstance("SSL");

然后,使用我们创建的 TrustManager 实例初始化 SSLContext:

mySSLContext.init(null, trustAllCerts, new java.security.SecureRandom());

最后,覆盖默认的 SSLSocketFactory,它来自 HttpsURLConnection 服务,供 Apache HTTP 客户端在其连接中使用。该步骤可确保 HttpsURLConnection 将使用我们刚刚创建的 SSL 上下文:

HttpsURLConnection.setDefaultSSLSocketFactory(mySSLContext.getSocketFactory());

现在,您已经接受了自签名证书。必须先完成这一步,以确保证书在整个会话过程中都被接受。

身份验证凭据

现在,您要创建建立与服务器的连接所需的所有 Java 对象。连接本身与您为了实现任何 Get 过程而创建的连接几乎是相同的。使用 Apache 库来创建连接,并提供所需的参数。

创建以下对象:

DefaultHttpClient httpclient = new DefaultHttpClient();
CookieStore cookieStore = new BasicCookieStore();HttpContext localContext = new BasicHttpContext();localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);

使用想要连接的服务器的 URL 来实例化一个对象 HttpGet(如果有必要,包括门),后面是 /jazz /authenticated/identity:

HttpGet httpGetID = new HttpGet("https://localhost:7443/ccm/authenticated/identity");

现在存储了服务器 URL,创建了会话,并以 Cookie 的形式将它记录在本地。利用您之前创建的对象来调用 HttpClient 对象的执行方法。您刚刚保存了 cookie,所以应该关闭连接:

httpclient.execute(httpGetID, localContext);httpGetID.abort();

如果想确保正确地创建了 cookie,可以尝试检索所保存的信息:

List<Cookie> cookies1 = cookieStore.getCookies();for (Cookie cookie : cookies1) { System.out.println("\t" + cookie.getName() + " :" + cookie.getValue());}

下一步是使用有效的用户名和密码凭据,通过 j_security_check 进行身份验证。在这一步中,我们使用了 Apache HttpClient 类 NameValuePair:

List<NameValuePair> authFormParams = new ArrayList<NameValuePair>();authFormParams.add(new BasicNameValuePair("j_username", "TestJazzAdmin1"));authFormParams.add(new BasicNameValuePair("j_password", "TestJazzAdmin1"));

现在,构建一个 UrlEcodedFormEntity,它编码 URL 和凭据,并执行一个 HTTP Post。参见清单 2:

清单 2. 构建一个 UrlEcodedFormEntity

UrlEncodedFormEntity encodedentity = new UrlEncodedFormEntity(authFormParams, "UTF-8"); HttpPost httpPostAuth = new httpPost("\ https://localhost:7443/ccm/authenticated/j_security_check"); httpPostAuth.setEntity(encodedentity);httpclient.execute(httpPostAuth, localContext);

现在最好检查一下是否已经正确创建了 cookie,以避免之后在连接过程中可能出现的任何问题。此代码只是提供信息,但是,如果想确保 cookie 已被正确地存储,请尝试检索所保存的信息:

List<Cookie> cookies2 = cookieStore.getCookies();for (Cookie cookie : cookies2) { System.out.println("\t" + cookie.getName() + " :" + cookie.getValue());}

如果 cookie 被正确存储,那么您的登录已经被验证,而且您可以访问到 Rational Team Concert。

时间: 2024-10-02 01:49:46

使用Java对Rational Team Concert中的工作项进行信息读写的相关文章

怎样在Rational Team Concert中创建仪表板视图

根据您的需要调用REST服务以及其他的Dojo工具 简介:本文向您介绍了怎样在 Jazz 技术平台上构建一个仪表板以及添加视图.文中还描述了怎样使 用 JavaScript 以及您想要添加至视图的 REST 服务以及 Dojo 工具,来以编程的方式地定制一个视图. 您可以使用 IBM Rational Team Concert 的 Web 用户界面(UI)来创建仪表板.您可 以选择从 Viewlet Selector 中添加什么视图来定义一个新的仪表板并配置它,或者您可以按本文中所述 的那样从一

IBM Rational Team Concert中组件特定操作的身份认证

了解如何基于角色或者客户访问许可证分配权限 简介:IBM Rational Team Concert 提供了丰富的组件来支持软件生命周期管理.像 Process 和 Work 项目这样由组件提供的操作是由相应的权限设置控制的.本文介绍了影响 Jazz 储存库中特定组件 操作身份认证问题的各个方面,以及隐藏在这些操作权限查找背后的逻辑. 基于角色的权限控制 在 IBM Rational Team Concert 中有两种层次的操作,它们运行在 IBM Jazz 技术平台之上: 储存库层次的操作:在

基于 Rational Team Concert 定制代码评审流程及工具

引言 IBM Rational Team Concert(RTC)是 IBM Rational 面向软件交付技术的下一代协作平台-Jazz 平台上的软件开发环境,它通过集成工作项追踪.源代码控制和可配置的流程管理来实现敏捷开发.其中流程管理是其区别于一般版本管理工具的一个重要功能,它更注重于将对代码的管理融入到整个代码的开发周期和团队协作当中去. 本文基于 RTC 定制了一套代码评审流程.该流程能够帮助 Moderator 管理评审任务,分配评审任务给多个 Reviewer,以及追踪代码评审中发

使用IBM Rational Team Concert V2管理Scrum项目,第3部分

概述 在您开始之前 在您开始为 Scrum 开发使用 IBM Rational Team Concert 之前,您要确保对 Scrum 的基础知识有了一个通透的理解,并理解诸如 Product Backlog, Story Points 等等之类的术语.在本系列第一部分"创建项目.团队和计划"的开始部分,有对 Scrum 项目管理的简单介绍. 关于本系列 IBM Rational Team Concert 协作功能的广度,使得快速理解它并且使用起来得心应手,变成一项十分具体挑战性的工作

使用BIRT 和 Rational Team Concert创建定制报表,第2部分:复杂报表与固定数

使用BIRT 和 Rational Team Concert创建定制报表,第2部分:复杂报表与固定数据集 关于本文 IBM Rational Team Concert 可以帮助软件开发团队存储和组织大量的信息,包括工作计划与任务,构建与测试,源代码与其他的字段.对于任意规模的储存库,可视化都会成为一个问题.怎样才能得到 Rational Team Concert 所追踪项目状态的高层次视图?操作板与工作项查询提供了一些方法以查看这些信息,但是对于一个更加可以定制的视图, Rational Tea

如何使用IBM Rational Method Composer为IBM Rational Team Concert文档化您

如何使用IBM Rational Method Composer为IBM Rational Team Concert文档化您的团队过程 本篇教程指导您如何在 IBM Rational Team Concert 客户机中配置 IBM Rational Method Composer 使用同一个 Eclipse 实例(shell-sharing),并上载由 Rational Method Composer 为 Jazz Team Server 生成的过程模板. 在开始学习之前 思考您想从本文中学到什

使用IBM Rational Team Concert进行实时协作和开发(一)

利用 IBM Rational Team Concert 构建一个 GWT 应用软件样例并排除程序故障 (debug) 简介:IBM Rational Team Concert 是一个可实时相互协作的软件交付环境,可使发团 队小组简化.自动化和监管治理其软件交付过程.在这篇教程中,您将利用 Subversion 从 Google Web Toolkit (GWT) 中把一个样例应用程序导入到 Rational Team Concert 中,从而能 够充分利用 Rational Team Conc

使用Rational Team Concert Item Connector同步数据存储库

在不同的部门连接数据存储库,以使协作更容易 不同的部门系统之间的数据同步化是非常重要的.例如,客户支持与开发部门通常拥有他们自己的问 题追踪系统,这样数据同步化就能使不同部门之间的员工可以共享信息并且同时处理相同的问题.但是, 这实现起来是十分困难的,因为它需要手动的操作.不同部门之间的员工协作性地处理相同问题的一种方 式是,联系两个团队之间的储存库,这样人们相互之间可以共享并追踪储存库中的对象.您可以使用项目 连接器(Item Connector)来完成该项操作,其中的项目连接器是 IBM R

SCM的IBM Rational Team Concert特性的最新替代

本文还提供了许多使用技巧,并提供了关于从现有基于主机的软件配置管理 (SCM) 工具或您组织内的版本迁移到 Rational Team Concert 的指导. 在当今许多公司中,分布式开发和基于主机开发这两者的开发环境是分裂的.多年来,我们一直在通用工具方面不断努力,但是总的来说,此分裂仍然存在.随着在不同的系统上各组成部分之间的联系日益增强,这种分裂逐渐成为一个问题.借助 IBM® Rational Team Concert 最新发行版本结合 Rational® Developer for