OpenID:Discovery异常:org.openid4java.discovery.yadis.YadisException:0x706:GET失败503:HTTP / 1.0 503服务不可用

时间:2012-01-13 20:38:49

标签: openid tomcat6

我根据Google OpenID OpenID构建了OpenID4Java服务器供内部使用。

我在Apache-Tomcat 6.0上部署了它。

当消费者试图发现时,它正在抛出以下错误

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)

当我通过网址http://localhost:9090/idp4java/idp访问XRDS时,我得到了它,但当我的消费者代码试图获取它时,上面的错误即将到来。

我们是否需要对Tomcat进行任何设置以启用Yadis

任何想法为什么会发生这种情况。我的代码与Google IDP一起工作正常。

先谢谢。 贾

1 个答案:

答案 0 :(得分:0)

上周五对此做了一些研究,并且可以解决它。

今天早上将记录器级别调试以查看发生了什么,并发现HTTP错误503是由于代码中的代理设置而来的。

在Production scnenario中,您需要Proxy设置,以便可以连接OpenID。您的appserver / webserver需要直接连接到OpenID for Discovery和Association进程。

HttpClientFactory.setProxyProperties(proxySettings);

HttpClientFactory类来自OpenID4Java。

在评论上述行后,我开始收到404错误。

原因是OpenIDURL结尾处的“/”,即http://myopenid.net/idp/。当我删除这个“/”时,它开始工作。

由于 贾

相关问题