Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

Unable to connect to RTC from Jenkins

I am unable to connect to RTC  from Jenkins

We have  RTC  which is hosted on a different domain. Our Jenkins is on the a VM ( windows 2008 R2).  I am trying to configure Jenkins to connect to RTC  and I get  an Error.


  1. I am  able to connect from Eclipse (installed on same  box) to RTC.
  2. I am able to connect from   to RTC from same box.
  3. I have set up the proxy configurations in the browser.
  4. I have installed the correct version of RTC Build tool kit.
  5. I am able to download and install plugins from Jenkins update center.


the error I am getting is 

Failed to connect : CRJAZ1371E The following URL cannot be reached:
https://<rtc-server>.company.com:443/ccm/versionCompatibility?clientVersion=4.0.3
						
. The server cannot be reached. The network could not connect to the server. Error details: Connection refused: connect.
com.ibm.team.repository.common.transport.ConnectionException: CRJAZ1371E The following URL cannot be reached: https://<rtc-server>.company.com:443/ccm/versionCompatibility?clientVersion=4.0.3. The server cannot be reached. The network could not connect to the server. Error details: Connection refused: connect. 
	at com.ibm.team.repository.transport.client.ClientHttpUtil.executePrimitiveRequest(ClientHttpUtil.java:1303)
	at com.ibm.team.repository.transport.client.ClientHttpUtil.executeHttpMethod(ClientHttpUtil.java:362)
	at com.ibm.team.repository.transport.client.ClientHttpUtil.executeHttpMethod(ClientHttpUtil.java:321)
	at com.ibm.team.repository.transport.client.ClientHttpUtil.executeHttpMethod(ClientHttpUtil.java:219)
	at com.ibm.team.repository.transport.client.ClientHttpUtil.executeHttpMethod(ClientHttpUtil.java:228)
	at com.ibm.team.repository.transport.client.RestClientConnectionBase.executeMethod(RestClientConnectionBase.java:315)
	at com.ibm.team.repository.transport.client.RestClientConnectionBase.doMethod(RestClientConnectionBase.java:181)
	at com.ibm.team.repository.transport.client.RestClientConnectionBase.doGet(RestClientConnectionBase.java:122)
	at com.ibm.team.repository.transport.client.TeamRawRestServiceClient$RawRestClientConnection.doGet(TeamRawRestServiceClient.java:96)
	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:164)
	at com.ibm.team.repository.client.internal.ServiceInterfaceProxy.invoke(ServiceInterfaceProxy.java:88)
	at com.ibm.team.repository.client.internal.RawRestServiceClientProxy$RestClientConnectionProxy.invoke(RawRestServiceClientProxy.java:121)
	at com.sun.proxy.$Proxy52.doGet(Unknown Source)
	at com.ibm.team.repository.client.internal.TeamRepository.fetchClientVersionJSONObject(TeamRepository.java:1624)
	at com.ibm.team.repository.client.internal.TeamRepository.access$0(TeamRepository.java:1621)
	at com.ibm.team.repository.client.internal.TeamRepository$5.run(TeamRepository.java:1692)
	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:1287)
	at com.ibm.team.repository.common.transport.CancelableCaller.call(CancelableCaller.java:79)
	at com.ibm.team.repository.client.internal.TeamRepository.callCancelableService(TeamRepository.java:1280)
	at com.ibm.team.repository.client.internal.TeamRepository.checkServerVersionMatches(TeamRepository.java:1695)
	at com.ibm.team.repository.client.internal.TeamRepository.internalLogin(TeamRepository.java:1471)
	at com.ibm.team.repository.client.internal.TeamRepository.login(TeamRepository.java:641)
	at com.ibm.team.build.internal.hjplugin.rtc.RepositoryConnection.testConnection(RepositoryConnection.java:115)
	at com.ibm.team.build.internal.hjplugin.rtc.RTCFacade.testConnection(RTCFacade.java:73)
	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.build.internal.hjplugin.RTCFacadeFactory$RTCFacadeWrapper.invoke(RTCFacadeFactory.java:115)
	at com.ibm.team.build.internal.hjplugin.util.RTCFacadeFacade.testConnection(RTCFacadeFacade.java:148)
	at com.ibm.team.build.internal.hjplugin.RTCScm$DescriptorImpl.checkConnect(RTCScm.java:645)
	at com.ibm.team.build.internal.hjplugin.RTCScm$DescriptorImpl.doCheckGlobalConnection(RTCScm.java:471)
	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 org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)
	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)
	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)
	at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:120)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
	at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631)
	at org.kohsuke.stapler.Stapler.service(Stapler.java:225)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
	at org.eclipse.jetty.server.Server.handle(Server.java:370)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
	at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
	at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection refused: connect
	at sun.nio.ch.Net.connect0(Native Method)
	at sun.nio.ch.Net.connect(Unknown Source)
	at sun.nio.ch.Net.connect(Unknown Source)
	at sun.nio.ch.SocketChannelImpl.connect(Unknown Source)
	at com.ibm.team.repository.transport.client.InterruptableSocketFactory.doConnect(InterruptableSocketFactory.java:142)
	at com.ibm.team.repository.transport.client.InterruptableSocketFactory.createSocket(InterruptableSocketFactory.java:69)
	at com.ibm.team.repository.transport.client.SecureInterruptableSocketFactory.createSocket(SecureInterruptableSocketFactory.java:300)
	at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
	at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
	at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
	at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
	at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
	at com.ibm.team.repository.transport.client.ClientHttpUtil.executePrimitiveRequest(ClientHttpUtil.java:1275)
	... 92 more
						


#

0 votes

Comments

if u go to the console of your jenkins machine (and maybe agents) can u use a web browser to bring up the RTC logon screen?  If not, then the RTC plugin can't work either.

the build toolkit uses a different instance of eclipse.. so if u need proxy, you will have to configure it there too..

I have this model working here in my test system..

rtc
jenkins master (virtual machine)
separate machine
   virtual machines for build (with jenkins agents)

@Sam Detweiler,

yes ,I can use a browser on jenkins machine to bring up RTC log on screen. I have configured proxy on my browser.

In Build Tool kit  I tried configuring jbe.ini in <buildtoolinstalldir>\buildsystem\buildengine\eclipse with following.Did not work either. Is this what you meant?

-vm
C:\Program Files\Java\jdk1.6.0_45\bin
--launcher.suppressErrors
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclient
-Dhttps.proxyHost=https://proxyhostname
-Dhttps.proxyPort=proxyportnumber

that is correct.  just to confirm, the protocol from the jbe machine to the proxy is https. right?

it is actually http

the the two proxy lines would be (notice the http. instead of https.)

-Dhttp.proxyHost=https://proxyhostname
-Dhttp.proxyPort=proxyportnumber

@Sam
I tried all combinations it did not work. I do think this is due to proxy , but I am unable to figure out the configuration in build tool kit

Update :

I was able to connect from command line
jbe -vm"<path to JDK" -repositoryID "<repositoryurl>" -userID<userid> -pass "<password>......

Jbe is picking up the proxy , but for some reason Team Concert plugin is not abel to do that

I've fixed the posts but be careful when adding answers to a question that are actually comments. Others may think the question has an answer when it does not contain any information at that point that leads to a solution.

showing 5 of 8 show 3 more comments

Accepted answer

Permanent link
I think what you need to do is make sure Jenkins has the 2 http properties defined in its running environment. For example:

java -Dhttp.proxyHost=https://proxyhostname -Dhttp.proxyPort=proxyportnumber -jar jenkins-1.509.1.war

The reason changing the jbe.ini file doesn't help is the Jenkins Team Concert plugin doesn't run/launch the JBE so the file doesn't get read. The code that handles establishing the connection with RTC is in the toolkit jars which are added to the class loader during run time. That code will look for the system env. vbles above. If you decide to run slaves, they too will need to be started with those env. variables (assuming that this works).
K K selected this answer as the correct answer

1 vote

Comments

isn't that what the  plugin advanced page is setting up? my jenkins runs under tomcat so I don't have a commandline

on edit: never mind, read the help, this is for jenkins to download plugins, not do actual work..
"If your Jenkins server sits behind a firewall and does not have the direct access to the internet, and if your server JVM is not configured appropriately (See JDK networking properties for more details) to enable internet connection, you can specify the HTTP proxy server name in this field to allow Jenkins to install plugins on behalf of you. Note that Jenkins uses HTTPS to communicate with the update center to download plugins."

Heather has the right answer..   don't know how to do that for tomcat for this application only however..

Indeed, Heather's solution worked!. thanks!

@Sam
I put the  properties in jenkins.xml file. and restarted the windows service and Jenkins picked up the properties. you will be able to verify this in manage jenkins > system information

<executable>%BASE%\jre\bin\java</executable>
  <arguments> -Dhttp.proxyHost=https://proxyhostname -Dhttp.proxyPort=proxyportnumber -Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>


2 other answers

Permanent link
sorry, I had you work on the wrong problem.. you will have to configure the proxy in jenkins..

Manage jenkins-> Manage Plugins- >Advanced tab

the RTC Jenkins plugin uses the jenkins proxy. (jenkins is the app)
JBE is the app on the build toolkit side.

0 votes


Permanent link
Configuring proxy in Jenkins was  one of the first things I tried before trying other things,, it did not work.

However,  When I switched from  localhost:8080 to " http://myhost.mydomain".. I see a message in Jenkins " your reverse proxy is broken".

I wonder if that has something to do with  the issue. thoughts?

-1 votes

Your answer

Register or log in to post your answer.

Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details

Question asked: Jul 21 '14, 3:43 p.m.

Question was seen: 5,961 times

Last updated: Jul 22 '14, 8:17 p.m.

Confirmation Cancel Confirm