Невозможно реализовать обычные файлы Jar Rational Team Concert (RTC) для создания рабочих элементов с помощью вызовов API REST из приложения WebSphere Server.

При попытке интегрировать простые файлы RTC в пользовательское приложение сервера WebSphere возникла исключительная ситуация в строке кода ниже.

this.teamRepository = TeamPlatform.getTeamRepositoryService().getTeamRepository(this.repositoryURI);

Исключение:

[12/2/15 16:04:19:883 SGT] 000000a4 BusinessExcep E   CNTR0020E: EJB
threw an unexpected (non-declared) exception during invocation of
method "createTestAutoDefect" on bean
"BeanId(RTCWebClientEAR#RTCWebClient.war#RTCWorkItemHandler, null)".
Exception data: java.lang.NoClassDefFoundError:
com.ibm.team.repository.client.internal.ContributorManager
(initialization failure)    at
java.lang.J9VMInternals.initialize(J9VMInternals.java:177)  at
com.ibm.team.repository.client.internal.TeamRepository.<init>(TeamRepository.java:427)
    at
com.ibm.team.repository.client.internal.TeamRepositoryService.createSharedTeamRepository(TeamRepositoryService.java:526)
    at
com.ibm.team.repository.client.internal.TeamRepositoryService.getTeamRepository(TeamRepositoryService.java:113)
    at
com.ibm.team.repository.client.internal.TeamRepositoryService.getTeamRepository(TeamRepositoryService.java:132)

...

Caused by: java.lang.IllegalArgumentException: The type name
Contributor and the namespace URI com.ibm.team.repository do not
resolve to an IItemType.    at
 com.ibm.team.repository.common.internal.querypath.AbstractQueryPathModel$Implementation.getItemType(AbstractQueryPathModel.java:192)
    at
 com.ibm.team.repository.common.query.IQuery$Factory.newInstance(IQuery.java:93)
    at
 com.ibm.team.repository.client.internal.ContributorManager.createAllContributorsQuery(ContributorManager.java:72)
    at
com.ibm.team.repository.client.internal.ContributorManager.<clinit>(ContributorManager.java:60)
    at java.lang.J9VMInternals.initializeImpl(Native Method)    at
java.lang.J9VMInternals.initialize(J9VMInternals.java:237)  at
 com.ibm.team.repository.client.internal.TeamRepository.<init>(TeamRepository.java:427)
    at
com.ibm.team.repository.client.internal.TeamRepositoryService.createSharedTeamRepository(TeamRepositoryService.java:526)
    at
com.ibm.team.repository.client.internal.TeamRepositoryService.getTeamRepository(TeamRepositoryService.java:113)
    at
com.ibm.team.repository.client.internal.TeamRepositoryService.getTeamRepository(TeamRepositoryService.java:132)

Кажется, классы в простых банках RTC загружены неправильно.

Эти файлы были помещены в папку библиотеки EAR, в которой находится веб-проект, реализующий функции RTC.

2 ответа

Решение

Решил проблему, настроив поведение загрузки классов в WebSphere, как показано ниже:

В интегрированной среде разработки RAD (ядро eclipase) щелкните правой кнопкой мыши EAR, который содержит веб-проект для клиента RTC -> Java EE -> Открыть развертывание WebSphere Application Server, перейдите в раздел Приложения и установите режим загрузчика классов: PARENT_LAST и политику загрузчика классов WAR: APPLICATION

Нашел это решение по адресу: https://jazz.net/forum/questions/75680/cant-connect-to-jazz-server-in-was-70?page=1&focusedAnswerId=75682

Скорее всего, причиной может быть отсутствие конфигураций плагинов в классах затмений, возникающих из-за поведения загрузки классов.

WebSphere реализован с помощью технологии OSGI, такой как eclipse, поэтому классы платформы eclipse по умолчанию загружаются из WebSphere, а не клиентских библиотек RTC (простых файлов JTC RTC), включенных в приложение EAR.

Следовательно, возможное решение - изменить политику загрузки классов.

Глядя на этот поток и этот, кажется, что:

  • проблема при использовании неисполняемого файла JAR
  • или, как здесь, признак отсутствия всех необходимых файлов jar на пути к классам
Другие вопросы по тегам