2012-01-13 88 views
0

我構建基於Google OpenID OpenID4Java的內部使用OpenID服務器。OpenID:發現異常:org.openid4java.discovery.yadis.YadisException:0x706:GET失敗503:HTTP/1.0 503服務不可用

我將它部署在Apache-Tomcat 6.0

當消費者試圖發現,它的投擲follwoing錯誤

org.openid4java.discovery.yadis.YadisException: 0x706: GET failed on http://localhost:9090/idp4java/idp : 503:HTTP/1.0 503 Service Unavailable 
    at org.openid4java.discovery.yadis.YadisResolver.retrieveXrdsLocation(YadisResolver.java:371) 
    at org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:233) 
    at org.openid4java.discovery.yadis.YadisResolver.discover(YadisResolver.java:221) 

當我訪問XRDS通過URL http://localhost:9090/idp4java/idp我得到它,但是當我的客戶代碼試圖獲取它,然後上面的錯誤來了。

我們是否需要對Tomcat進行任何設置才能啓用Yadis

任何想法,爲什麼這可能會發生。我的代碼與Google IDP工作正常。

在此先感謝。 Jha

回答

0

上週五做了一些研究,並可以解決它。

今天早上把記錄器級別調試以查看發生了什麼,並發現由於代碼中的代理設置,HTTP錯誤503即將到來。

在Production scnenario中,您需要Proxy設置,以便OpenID可以連接。您的appserver/webserver需要直接連接到OpenID以進行發現和關聯流程。

HttpClientFactory.setProxyProperties(proxySettings);

HttpClientFactory類來自OpenID4Java。

評論上述行後,我開始得到404錯誤。

原因是在「OpenIDURL」末尾有「/」,即http://myopenid.net/idp/。當我刪除這個「/」它開始工作。

謝謝 Jha

相關問題