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.
- I am able to connect from Eclipse (installed on same box) to RTC.
-
I am able to connect from to RTC from same box.
- I have set up the proxy configurations in the browser.
- I have installed the correct version of RTC Build tool kit.
-
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 |
||
|
|
|
Accepted answer
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).
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
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?
Comments
sam detweiler
Jul 21 '14, 4:08 p.m.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)
K K
Jul 22 '14, 11:28 a.m.@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
sam detweiler
Jul 21 '14, 6:00 p.m.that is correct. just to confirm, the protocol from the jbe machine to the proxy is https. right?
K K
Jul 22 '14, 11:28 a.m.it is actually http
sam detweiler
Jul 21 '14, 6:57 p.m.the the two proxy lines would be (notice the http. instead of https.)
-Dhttp.proxyHost=https://proxyhostname
-Dhttp.proxyPort=proxyportnumber
K K
Jul 22 '14, 11:28 a.m.@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
K K
Jul 22 '14, 11:29 a.m.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
Tim Mok
JAZZ DEVELOPER Jul 22 '14, 11:30 a.m.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.