2012-09-21 64 views
14

我開始了一個項目,我必須使用外部svn(我在代理下)。當我把網址中的配置項目,詹金斯不能訪問到存儲庫中,所以我充滿憑證(倉庫URL,用戶名和密碼),但這裏的錯誤:Jenkins的SVN驗證錯誤

FAILED: svn: E175002: OPTIONS /.../trunk/www failed 

org.tmatesoft.svn.core.SVNException: svn: E175002: OPTIONS /.../trunk/www failed 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:304) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:289) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:277) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:696) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:619) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:103) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1018) 
     at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.testConnection(DAVRepository.java:99) 
     at hudson.scm.SubversionSCM$DescriptorImpl.postCredential(SubversionSCM.java:1968) 
     at hudson.scm.SubversionSCM$DescriptorImpl.doPostCredential(SubversionSCM.java:1913) 
     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:288) 
     at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151) 
     at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90) 
     at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111) 
     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659) 
     at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241) 
     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659) 
     at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241) 
     at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53) 
     at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659) 
     at org.kohsuke.stapler.Stapler.invoke(Stapler.java:488) 
     at org.kohsuke.stapler.Stapler.service(Stapler.java:162) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:45) 
     at winstone.ServletConfiguration.execute(ServletConfiguration.java:248) 
     at winstone.RequestDispatcher.forward(RequestDispatcher.java:333) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376) 
     at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95) 
     at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) 
     at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:63) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) 
     at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66) 
     at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
     at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) 
     at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) 
     at winstone.FilterConfiguration.execute(FilterConfiguration.java:194) 
     at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366) 
     at winstone.RequestDispatcher.forward(RequestDispatcher.java:331) 
     at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:215) 
     at winstone.RequestHandlerThread.run(RequestHandlerThread.java:138) 
     at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) 
     at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
     at java.util.concurrent.FutureTask.run(Unknown Source) 
     at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
     at java.lang.Thread.run(Unknown Source) 
Caused by: svn: E175002: OPTIONS /.../trunk/www failed 
     at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208) 
     at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:154) 
     at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:97) 
     ... 80 more 
Caused by: org.tmatesoft.svn.core.SVNException: svn: E175002: OPTIONS request failed on '/.../trunk/www' 
svn: E175002: connection refused by the server 
     at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:64) 
     at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:681) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:298) 
     ... 79 more 
Caused by: svn: E175002: OPTIONS request failed on '/.../trunk/www' 
     at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:679) 
     ... 80 more 
Caused by: svn: E175002: connection refused by the server 
     at org.tmatesoft.svn.core.SVNErrorMessage.create(SVNErrorMessage.java:208) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:424) 
     ... 80 more 
Caused by: java.net.ConnectException: Connection timed out: connect 
     at java.net.PlainSocketImpl.socketConnect(Native Method) 
     at java.net.PlainSocketImpl.doConnect(Unknown Source) 
     at java.net.PlainSocketImpl.connectToAddress(Unknown Source) 
     at java.net.PlainSocketImpl.connect(Unknown Source) 
     at java.net.SocksSocketImpl.connect(Unknown Source) 
     at java.net.Socket.connect(Unknown Source) 
     at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source) 
     at org.tmatesoft.svn.core.internal.util.SVNSocketFactory.connect(SVNSocketFactory.java:112) 
     at org.tmatesoft.svn.core.internal.util.SVNSocketFactory.createSSLSocket(SVNSocketFactory.java:85) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.connect(HTTPConnection.java:195) 
     at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:360) 
     ... 80 more 

在C:\ WINDOWS \ System32 \ config \ systemprofile \ AppData \ Roaming \ Subversion \ server,代理已配置,並且在Jenkins中,我可以安裝/更新插件。

svn url位於https中,我可以在瀏覽器中使用憑據訪問它。

默認情況下,Jenkins中使用的svn版本是1.4,即使是1.7,也無法訪問此svn服務器。

服務器是Windows 7 64位,這是詹金斯的最後一個版本。

問題在哪裏?

謝謝

+1

'原因:java.net.ConnectException:連接超時:connect'提示網絡相關的問題;你可以從部署Jenkins的網絡訪問外部SVN嗎? –

+1

通過瀏覽器,我可以使用與Jenkins相同的憑據訪問svn服務器。所以我不太明白,因爲代理是爲Subversion配置的。 – skurty

+0

最近我遇到了這個問題:代理讓我的瀏覽器可執行文件退出,瀏覽HTTP(S)中的SVN回購,但沒有讓我的svn可執行文件執行相同的操作。也許這也適用於您的問題... –

回答

1

您可以使用此選項的命令:

-Dsvnkit.http.sslProtocols="SSLv3" 
2

刪除您${user.home}/.subversion

+2

Jenkins服務器上的哪個用戶家,jenkins slave,subversion服務器? –

2

在這裏的遊戲真的很晚,但我只是有同樣的問題。如果你在Jenkins機器上手動運行SVN,它會爲你的svn服務器創建一個svn認證文件(認證緩存)。該文件的存在打破了詹金斯svn。

在我的服務器(Windows),文件位於:

%APPDATA%\Subversion\auth\svn.simple 

我相信在Linux上,這將是在〜/的.subversion

我改名目錄svn.simple到SVN .simple1和事物立即開始工作(當我將它改回時,再次破壞)。

爲了防止這種情況的詹金斯服務器上運行的SVN倉時,你可以

  • 更新您的%APPDATA%\顛覆\ CONFIG通過取消註釋文件「存儲密碼=無」
  • 或使用本flag:--no-auth-cache
0

我要提交一個我在ServerFault上提交的答案,對我來說真的很好。解決的辦法是直接在其<arguments>元素編輯Jenkins.xml文件,包括

-Dhttp.proxyHost=proxy.myproxy.com Dhttp.proxyPort=99999 -Dhttp.auth.preference=Basic 

顯然,這允許Java內部通過代理服務器。