意外的字符“60” - 尝试登录RTC java api时出错

问题描述 投票:1回答:1

我正在尝试使用以下命令登录RTC java api 6.0.2:

TeamPlatform.startup();
repo = TeamPlatform.getTeamRepositoryService().getTeamRepository(repoUri);
repo.registerLoginHandler(new ILoginHandler2() {
   public ILoginInfo2 challenge(ITeamRepository repo) {
      return new UsernameAndPasswordLoginInfo(userId, password);
   }
});
repo.login(monitor);

但是我在执行repo.login()方法时遇到以下错误:

com.ibm.team.repository.common.TeamRepositoryException: Unexpected character 
   "60": line 3, column 1 
at com.ibm.team.repository.client.internal.TeamRepository.fetchClientVersionJSONObject(TeamRepository.java:1746)
at com.ibm.team.repository.client.internal.TeamRepository.access$0(TeamRepository.java:1699)
at com.ibm.team.repository.client.internal.TeamRepository$5.run(TeamRepository.java:1770)
at com.ibm.team.repository.client.internal.TeamRepository$5.run(TeamRepository.java:1)
at com.ibm.team.repository.client.internal.TeamRepository$3.run(TeamRepository.java:1328)
at com.ibm.team.repository.common.transport.CancelableCaller.call(CancelableCaller.java:79)
at com.ibm.team.repository.client.internal.TeamRepository.callCancelableService(TeamRepository.java:1323)
at com.ibm.team.repository.client.internal.TeamRepository.checkServerVersionMatches(TeamRepository.java:1773)
at com.ibm.team.repository.client.internal.TeamRepository.internalLogin(TeamRepository.java:1521)
at com.ibm.team.repository.client.internal.TeamRepository.login(TeamRepository.java:654)
at com.ibm.team.repository.client.internal.TeamRepository.login(TeamRepository.java:628)
at snippets.Snippet1.login(Snippet1.java:67)
at snippets.AllSnippets.main(AllSnippets.java:28)
Caused by: java.io.IOException: Unexpected character "60": line 3, column 1
at com.ibm.team.repository.common.json.internal.Tokenizer.next(Tokenizer.java:113)
at com.ibm.team.repository.common.json.internal.Parser.parse(Parser.java:30)
at com.ibm.team.repository.common.json.JSONObject.parse(JSONObject.java:72)
at com.ibm.team.repository.client.internal.TeamRepository.fetchClientVersionJSONObject(TeamRepository.java:1744)
... 12 more

这段代码工作正常,但突然出现了这个错误。有谁知道如何解决这个问题?

java-api rational-team-concert ibm-jazz
1个回答
0
投票

注册LoginHandler时,请将ITeamRepository.ILoginHandler用作接口,不要使用ILoginHandler2。

我可以检查与RTC Plain Java API一起提供的片段以获取更多样本。下面列出了6.0.2的工作代码。

public static ITeamRepository login(IProgressMonitor monitor) throws TeamRepositoryException {
    ITeamRepository repository = TeamPlatform.getTeamRepositoryService().getTeamRepository(REPOSITORY_ADDRESS);
    repository.registerLoginHandler(new ITeamRepository.ILoginHandler() {
        public ILoginInfo challenge(ITeamRepository repository) {
            return new ILoginInfo() {
                public String getUserId() {
                    return USER_AND_PASSWORD;
                }
                public String getPassword() {
                    return USER_AND_PASSWORD;                        
                }
            };
        }
    });
    monitor.subTask("Contacting " + repository.getRepositoryURI() + "...");
    repository.login(monitor);
    monitor.subTask("Connected");
    return repository;
}
© www.soinside.com 2019 - 2024. All rights reserved.