"RA layer request failed" error with Subclipse, no errors with web browser

Neets picture Neets · Jan 24, 2012 · Viewed 23.2k times · Source

I'm using STS 2.8.1 (I think it's based on Eclipse Indigo) with Subclipse 1.6.18.

I'm trying to check some code out from a repository, but when I add the repository location, I get the following error:

RA layer request failed
svn: Server sent unexpected return value (503 Service Unavailable) in response to OPTIONS request for 'http://a.b.com:18080/svn/myproject'

The thing is, if I try to access that repository from a web browser (e.g. Chrome or IE), I'm allowed to access it. It asks for my username and password, and after I enter them, I can see the project tree.

Does anyone know why I can access from the web browser but not from STS?

The proxy settings are configured correctly for Subclipse (and I can access other repositories from STS, but not that one).

Answer

VonC picture VonC · Jan 24, 2012

This is usually due to an SVN setting (c:\Documents and Settings\_username_\Application Data\Subversion\servers or ~/.subversion/servers) overriding an Eclipse setting.

Or one of those settings could have the wrong password for the proxy.

However, the OP Neets reports:

  • I'm able to connect to other repository locations (so the proxy password is correct)
  • I solved it, adding the corresponding exception in the servers file, like this:
http-proxy-exceptions = exception.com

That is compliant with what describes the openDNS article Configuring Subversion to Use a Proxy Server:

http-proxy-exceptions

This specifies a set of repository addresses for which you don't need to access a proxy server. For example, if you have a repository on your local LAN, then you probably won't need a proxy to access it.
This should be a comma-delimited list of servers, and you can use an asterisk as a wildcard.
If all of the repositories that you will access require you to use a proxy server, then you can leave this out.

The following shows a sample configuration that will use a proxy server to access all servers outside of the example.com domain:

[global]
http-proxy-exceptions = *.example.com
http-proxy-host = proxy.example.com
http-proxy-port = 8080
http-proxy-username = myuserid
http-proxy-password = mypassword