【问题标题】:Unknow Host Exception while using Primefaces Captcha使用 Primefaces 验证码时出现未知主机异常
【发布时间】:2023-11-27 10:39:01
【问题描述】:

在 Prime Face 6、Weblogic 12c 中使用标签“P:Captcha”时,我面临以下异常。

<Feb 21, 2018 4:20:30 PM PKT> <Error> <HTTP> <BEA-101019> <[ServletContext@24665149[app:_auto_generated_ear_ module:/ path:null spec-version:3.0]] Servlet failed with an IOException
java.net.UnknownHostException: www.google.com
   at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
   at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
   at java.net.Socket.connect(Socket.java:579)
   at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:625)

我们支持代理互联网。我还在 setDomainEnv.cmd 中添加了以下脚本

set JAVA_OPTIONS=%JAVA_OPTIONS% %JAVA_PROPERTIES% -Dhttp.proxySet=true -Dhttp.proxyHost=10.1.10.2 -Dhttp.proxyPort=80 -DUseSunHttpHandler=true

任何人都可以帮助我。

【问题讨论】:

  • 请让我看看你的类代码,哪里出现异常
  • 我刚刚在我的 xhtml 文件中添加了这个标签。
  • PrimeFaces 使用 Google reCaptcha。你有 Google reCaptcha 密钥吗?
  • 如果你还没有尝试看这个*.com/questions/23979342/…
  • 主要问题是由于代理互联网验证码无法连接到谷歌服务器。由于 reCaptcha v2 具有 https 链接,因此通过在 setDomainEnv.cmd 中添加以下代码验证码现在可以正常工作。设置 JAVA_OPTIONS=%JAVA_OPTIONS% -Dhttps.proxyHost=172.18.101.2 -Dhttps.proxyPort=80 -Dhttps.nonProxyHosts="127.*|localhost"

标签: java primefaces captcha weblogic12c


【解决方案1】:

问题是代理互联网。由于代理,验证码无法连接到谷歌服务器。由于 reCaptcha v2 具有 https 链接,因此通过在 setDomainEnv.cmd 中添加以下代码验证码现在可以正常工作。

set JAVA_OPTIONS=%JAVA_OPTIONS% -Dhttps.proxyHost=172.18.101.2 -Dhttps.proxyPort=80 -Dhttps.nonProxyHosts="127.*|localhost"

【讨论】: