Как получить все области проекта с Java Team Server? - PullRequest
1 голос
/ 11 октября 2011

Я установил локальный Java Team Server версии 3.0.1.Я пытаюсь использовать веб-сервисы REST для получения всех областей проекта.Для этого я сначала аутентифицировал себя:

public HttpContext login() throws ClientProtocolException, IOException {

        client = new DefaultHttpClient();
        CookieStore cookieStore = new BasicCookieStore();
        HttpContext localContext = new BasicHttpContext();

        localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);

        HttpGet httpGetID = new HttpGet("https://localhost:9443/ccm/authenticated/identity");
        client.execute(httpGetID, localContext);
        httpGetID.abort();

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

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

        UrlEncodedFormEntity entity = new UrlEncodedFormEntity(authFormParams, "UTF-8");
        HttpPost httpPostAuth = new HttpPost("https://localhost:9443/ccm/authenticated/j_security_check");
        httpPostAuth.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
        httpPostAuth.setEntity(entity);
        client.execute(httpPostAuth, localContext);
        //httpPostAuth.abort();

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

        return localContext;
    }

Затем я пытаюсь получить области проекта со следующим кодом:

HttpGet getProjectsRequest = new HttpGet("https://localhost:9443/ccm/oslc-scm/catalog");
        getProjectsRequest.addHeader("Content-Type", "application/xml;charset=UTF-8");
        getProjectsRequest.addHeader("Accept-Charset", "UTF-8");
        getProjectsRequest.addHeader("Accept", "application/x-oslc-cm-change-request+xml");

        ResponseHandler<String> handler = new BasicResponseHandler();
        String projectResponse = client.execute(getProjectsRequest, handler, localContext);
        System.out.println(projectResponse);

К сожалению, ответ всегда один и тот же:

{
    "userId": "ADMIN",
    "roles": [
        "JazzUsers",
        "JazzProjectAdmins",
        "JazzAdmins"]
}

Это выглядит для меня как объект JSON.Вместо этого я должен получить документ XML, в котором перечислены все проекты.Я уже попробовал тот же сервис REST с плагином REST для Firefox.Там я получаю XML-документ, как и ожидалось.Однако я не вижу различий между моим кодом и тем, что я делаю в плагине.

Ответы [ 2 ]

0 голосов
/ 26 августа 2016

Вы можете получить все проектные области определенного пользователя, используя DraftTeamProcessRestAPIs

и, в частности, увидеть этот раздел

Этот API-интерфейс отвечает в XML

, а также есть ReportableRestAPIs , которые могут выполнить то, что вы хотите, используя этот URL в коде:

 https://<server>:<port>/ccm/rpt/repository/foundation?fields=foundation/projectArea/(name|teamMembers/userId)
0 голосов
/ 15 апреля 2012

Вы можете найти ответ здесь .

Вот что я понял: в основном вам нужно перейти на другую страницу, чтобы получить cookie, а затем выполнить свой запрос.Просто запустите одно и то же дважды, и вы поймете, что я имею в виду.

...