RTC Plain Java API and Jazz Authentication Server
com.ibm.team.repository.common.transport.ServiceMethodInvocationError: java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.<init>(I)V
at com.ibm.team.repository.transport.client.RemoteTeamService.getAppropriateException(RemoteTeamService.java:737)
at com.ibm.team.repository.transport.client.RemoteTeamService.executeMethod(RemoteTeamService.java:573)
at com.ibm.team.repository.transport.client.RemoteTeamService.invoke(RemoteTeamService.java:202)
at com.ibm.team.repository.transport.client.ServiceInvocationHandler.invoke(ServiceInvocationHandler.java:43)
at com.sun.proxy.$Proxy0.describe(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.ibm.team.repository.client.internal.ServiceInterfaceProxy.invokeServiceCall(ServiceInterfaceProxy.java:254)
at com.ibm.team.repository.client.internal.ServiceInterfaceProxy.invoke(ServiceInterfaceProxy.java:110)
at com.sun.proxy.$Proxy0.describe(Unknown Source)
at com.ibm.team.repository.client.internal.TeamRepository$4.run(TeamRepository.java:1564)
at com.ibm.team.repository.client.internal.TeamRepository$4.run(TeamRepository.java:1)
at com.ibm.team.repository.client.internal.TeamRepository$3.run(TeamRepository.java:1327)
at com.ibm.team.repository.common.transport.CancelableCaller.call(CancelableCaller.java:79)
at com.ibm.team.repository.client.internal.TeamRepository.callCancelableService(TeamRepository.java:1322)
at com.ibm.team.repository.client.internal.TeamRepository.internalLogin(TeamRepository.java:1557)
at com.ibm.team.repository.client.internal.TeamRepository.login(TeamRepository.java:653)
at com.ibm.team.repository.client.internal.TeamRepository.login(TeamRepository.java:627)
at com.att.tdp.qm.ProjectAreaManager.login(ProjectAreaManager.java:154)
at com.att.tdp.qm.ProjectAreaManager.<init>(ProjectAreaManager.java:120)
at com.att.tdp.qm.scripts.MotsApplicationUpdater.execute(MotsApplicationUpdater.java:303)
at com.att.tdp.qm.runners.MotsRunner.execute(MotsRunner.java:51)
at com.att.tdp.qm.runners.GenericRunner.run(GenericRunner.java:109)
at com.att.tdp.qm.ct.Application.run(CommandLineUtil.java:198)
at com.att.tdp.qm.ct.CommandLineUtil.main(CommandLineUtil.java:306)
Caused by: java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.<init>(I)V
at org.apache.http.impl.auth.BasicScheme.authenticate(BasicScheme.java:168)
at org.apache.http.impl.auth.HttpAuthenticator.doAuth(HttpAuthenticator.java:239)
at org.apache.http.impl.auth.HttpAuthenticator.generateAuthResponse(HttpAuthenticator.java:218)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:262)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:71)
at com.ibm.team.repository.transport.client.RemoteTeamServer.executePrimitiveRequest(RemoteTeamServer.java:1870)
at com.ibm.team.repository.transport.client.RemoteTeamServer.handleAuthorizationServerChallenge(RemoteTeamServer.java:1358)
at com.ibm.team.repository.transport.client.RemoteTeamServer.handleBearerChallenge(RemoteTeamServer.java:1419)
at com.ibm.team.repository.transport.client.RemoteTeamServer.executeWithAuthHandling(RemoteTeamServer.java:1556)
at com.ibm.team.repository.transport.client.RemoteTeamServer.executeMethod(RemoteTeamServer.java:1170)
at com.ibm.team.repository.transport.client.RemoteTeamServer.executeMethod(RemoteTeamServer.java:1119)
at com.ibm.team.repository.transport.client.RemoteTeamService.executeCancelableHttpMethod(RemoteTeamService.java:658)
at com.ibm.team.repository.transport.client.RemoteTeamService.invokePost(RemoteTeamService.java:605)
at com.ibm.team.repository.transport.client.RemoteTeamService.executeMethod(RemoteTeamService.java:548)
... 25 more
Accepted answer
Comments
Thanks for sharing! Is there an enhancement or defect that tracks this getting fixed? And some documentation how to apply the workaround?
which 'rtc eclipse clients'.. a single eclipse can't include BOTH
The image above shows clearly that both versions are shipped. I'm not claiming that both are used, simply that both jars are present on the filesystem (and based on behavior, it seems obvious that the 1.9 version is the one used). That image is from the standalone RTC Eclipse Client (downloadable zip). I saw the same situation (both 1.3 and 1.9) in an Installation Manager instance.
Not totally sure what it shows. the org.apache.commons.codec_1.3.0.v20100518-1140.jar is the plugin for the codec. It contains some org.apache.commons.codec_1.3.0.v20100518-1140.jar\org\apache\commons\codec.
The commons-codec-1.9.jar is in the plugin
org.apache.http.client_4.5.0.v20150903_0106\lib
if I look at my file system. I am not smart enough to know what is what, to be honest.
I don't know the details, either, but the RTC client library (the standalone zip) -- up through version 6.0.3 M6 -- only includes the org.apache.commons.codec_1.3.0.v20100518-1140.jar, which we now know can't be used in Jazz Authentication Server environment.