Невозможно реализовать обычные файлы 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 на пути к классам