Plain java API fails to connect Rational Team Concert server in WebSphere Application Server with PARENT_FIRST classloading
Attempts to deploy an EAR to IBM WebSphere Application Server (WAS) from IBM Rational Team Concert (RTC) results in the error "java.lang.NoClassDefFoundError".
You are using RTC Java Client API, where the application is 1) running well as plain Java and 2) wrapped as EAR/WAR running well in Tomcat, but is getting an error when deploy EAR to IBM WebSphere application Server.
The following are error examples:
SystemErr R com.ibm.team.repository.common.TeamRepositoryException: Badly configured client. Missing a foundation component tag
RTC Plain Java Client API library conflicts with WAS system library, and also faces problem with classloading issue.
The problem happens to both WAS 7.0 and 8.0 versions.
Resolving the problem
To fix the problem and deploy the application using RTC Plain Java Client API library on WAS which has limited supported scenario, you need to modify the following detailed settings:
- The application needs to use classloader of PARENT_LAST policy, not the default PARENT_FIRST policy.
- The javax.servlet.xxx.jar can not be included in the provided package. You need to remove the jar from RTC client API library and to use the jar from WAS.
Note: Set up the RTC Plain Java Client API library as an isolated shared library, which provides extra flexibility for the application itself.