2013-10-30 76 views
1

我需要通過我們的企業防火牆連接,進入我們的SharePoint 2010的實例上的Office 365。我試圖用java-sharepoint-library爪哇 - 如何連接到Microsoft Office 365的SharePoint

NtlmAuthenticator credentials = new NtlmAuthenticator(
    "myactivedirectorydomain", "myusername", "mypassword"); 

HttpProxy httpProxy = new HttpProxy("proxy.ourcompany.com", 80); 

SPSite site = new SPSite(
    new URL("https://ourcompany.com/sites/teams_MySandbox"), 
    credentials, 
    httpProxy, 
    true, 
    SPVersion.SP2010); 

SPWeb rootWeb = site.getRootWeb(); //gives error below 

這裏是我的錯誤: 「服務器重定向太多次(20)」

javax.xml.ws.WebServiceException: java.net.ProtocolException: Server redirected too many times (20) 
    at com.sun.xml.internal.ws.transport.http.client.HttpClientTransport.readResponseCodeAndMessage(Unknown Source) 
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.createResponsePacket(Unknown Source) 
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(Unknown Source) 
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(Unknown Source) 
    at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(Unknown Source) 
    at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Unknown Source) 
    at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Unknown Source) 
    at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Unknown Source) 
    at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Unknown Source) 
    at com.sun.xml.internal.ws.client.Stub.process(Unknown Source) 
    at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(Unknown Source) 
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source) 
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source) 
    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(Unknown Source) 
    at com.sun.proxy.$Proxy38.getWeb(Unknown Source) 
    at org.korecky.sharepoint.SPSite.getRootWeb(SPSite.java:280) 
    at com.dupont.cintell.test4.TestSharePointConnection.testConnect(TestSharePointConnection.java:87) 
    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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) 
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) 
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) 
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) 
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) 
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) 
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) 
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) 
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) 
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) 
    at org.junit.runners.ParentRunner.run(ParentRunner.java:309) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 
Caused by: java.net.ProtocolException: Server redirected too many times (20) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 
    at java.net.HttpURLConnection.getResponseCode(Unknown Source) 
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source) 
    ... 44 more 

感謝您的幫助!

回答

0

我可能是錯的,但我認爲你打的的Sharepoint環回檢查問題:

http://www.jeremytaylor.net/2010/05/24/sharepoint-disable-loopback-check-disableloopbackcheck-dword-in-registry/

嘗試解決方法之一,是自覺的參與就關閉它的安全問題。

我會暫時禁用它,只是爲了檢查它是否確實是問題。

+0

謝謝,但服務器位於Microsoft Office 365雲中。我無法在該服務器上進行註冊表更改。應該可以使用Java與這樣的服務器進行通信,因爲我可以使用MS Office客戶端(Access,Excel)與服務器進行通信。 – davedonohue

+0

你使用哪種代理? NTLM不太喜歡代理服務器,你有一個可以在java客戶端上設置的保持活動的屬性嗎? – Luis

+0

檢查是否相關:http://www.coderanch.com/t/473115/Web-Services/java/services-work-NTLM-Authentication-HTTPS – Luis

相關問題