URL.openStream 生成错误 (javax.net.ssl.SSLException)
URL.openStream generates en error (javax.net.ssl.SSLException)
我有一个问题,我正在使用静态 Feed/URL (https) 从中读取数据。今天它停止工作了。 URL 仍然可以访问并且内容在那里。我看到 feed/URL 最近获得了新证书。
URL page = new URL(url);
InputStream is = page.openStream(); // issue happens here
InputStreamReader isr = new InputStreamReader(is);
BufferedReader in = new BufferedReader(isr);
有人可以建议我 check/test/do 应该如何解决我的问题吗?
这里是 StackTrace 错误
Agent error: javax.net.ssl.SSLException: java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 64
Agent error: at com.ibm.jsse2.o.a(o.java:10)
Agent error: at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:216)
Agent error: at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:864)
Agent error: at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:618)
Agent error: at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:500)
Agent error: at com.ibm.jsse2.SSLSocketImpl.startHandshake(SSLSocketImpl.java:220)
Agent error: at com.ibm.net.ssl.www2.protocol.https.c.afterConnect(c.java:184)
Agent error: at com.ibm.net.ssl.www2.protocol.https.d.connect(d.java:40)
Agent error: at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1207)
Agent error: at com.ibm.net.ssl.www2.protocol.https.b.getInputStream(b.java:66)
Agent error: at java.net.URL.openStream(URL.java:1022)
Agent error: at JavaAgent.getURLContent(JavaAgent.java:23)
Agent error: at JavaAgent.NotesMain(JavaAgent.java:12)
Agent error: at lotus.domino.AgentBase.runNotes(Unknown Source)
Agent error: at lotus.domino.NotesThread.run(Unknown Source)
Agent error: Caused by:
Agent error: java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 64
Agent error: at com.ibm.crypto.provider.xc.a(Unknown Source)
Agent error: at com.ibm.crypto.provider.xc.a(Unknown Source)
Agent error: at com.ibm.crypto.provider.xc.a(Unknown Source)
Agent error: at com.ibm.crypto.provider.TlsMasterSecretGenerator.engineGenerateKey(Unknown Source)
Agent error: at javax.crypto.KeyGenerator.generateKey(Unknown Source)
Agent error: at com.ibm.jsse2.kb.b(kb.java:584)
Agent error: at com.ibm.jsse2.kb.a(kb.java:406)
Agent error: at com.ibm.jsse2.lb.a(lb.java:352)
Agent error: at com.ibm.jsse2.lb.a(lb.java:156)
Agent error: at com.ibm.jsse2.kb.s(kb.java:659)
Agent error: at com.ibm.jsse2.kb.a(kb.java:393)
Agent error: at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:850)
Agent error: at com.ibm.jsse2.SSLSocketImpl.h(SSLSocketImpl.java:63)
Agent error: at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:316)
Agent error: ... 10 more
我们针对这个问题做了两件事:
- 启动我们的 Domino 服务器。据我了解,当您升级 Domino 服务器时,它也会升级证书存储。
- 我们还禁用了证书验证(尽管这是一种肮脏的方式)。
您可以尝试我的解决方案Disabling certificate validation in Java
也可以看看那里的相关主题,也许会对你有所帮助。
我有一个问题,我正在使用静态 Feed/URL (https) 从中读取数据。今天它停止工作了。 URL 仍然可以访问并且内容在那里。我看到 feed/URL 最近获得了新证书。
URL page = new URL(url);
InputStream is = page.openStream(); // issue happens here
InputStreamReader isr = new InputStreamReader(is);
BufferedReader in = new BufferedReader(isr);
有人可以建议我 check/test/do 应该如何解决我的问题吗?
这里是 StackTrace 错误
Agent error: javax.net.ssl.SSLException: java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 64
Agent error: at com.ibm.jsse2.o.a(o.java:10)
Agent error: at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:216)
Agent error: at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:864)
Agent error: at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:618)
Agent error: at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:500)
Agent error: at com.ibm.jsse2.SSLSocketImpl.startHandshake(SSLSocketImpl.java:220)
Agent error: at com.ibm.net.ssl.www2.protocol.https.c.afterConnect(c.java:184)
Agent error: at com.ibm.net.ssl.www2.protocol.https.d.connect(d.java:40)
Agent error: at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1207)
Agent error: at com.ibm.net.ssl.www2.protocol.https.b.getInputStream(b.java:66)
Agent error: at java.net.URL.openStream(URL.java:1022)
Agent error: at JavaAgent.getURLContent(JavaAgent.java:23)
Agent error: at JavaAgent.NotesMain(JavaAgent.java:12)
Agent error: at lotus.domino.AgentBase.runNotes(Unknown Source)
Agent error: at lotus.domino.NotesThread.run(Unknown Source)
Agent error: Caused by:
Agent error: java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 64
Agent error: at com.ibm.crypto.provider.xc.a(Unknown Source)
Agent error: at com.ibm.crypto.provider.xc.a(Unknown Source)
Agent error: at com.ibm.crypto.provider.xc.a(Unknown Source)
Agent error: at com.ibm.crypto.provider.TlsMasterSecretGenerator.engineGenerateKey(Unknown Source)
Agent error: at javax.crypto.KeyGenerator.generateKey(Unknown Source)
Agent error: at com.ibm.jsse2.kb.b(kb.java:584)
Agent error: at com.ibm.jsse2.kb.a(kb.java:406)
Agent error: at com.ibm.jsse2.lb.a(lb.java:352)
Agent error: at com.ibm.jsse2.lb.a(lb.java:156)
Agent error: at com.ibm.jsse2.kb.s(kb.java:659)
Agent error: at com.ibm.jsse2.kb.a(kb.java:393)
Agent error: at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:850)
Agent error: at com.ibm.jsse2.SSLSocketImpl.h(SSLSocketImpl.java:63)
Agent error: at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:316)
Agent error: ... 10 more
我们针对这个问题做了两件事:
- 启动我们的 Domino 服务器。据我了解,当您升级 Domino 服务器时,它也会升级证书存储。
- 我们还禁用了证书验证(尽管这是一种肮脏的方式)。
您可以尝试我的解决方案Disabling certificate validation in Java
也可以看看那里的相关主题,也许会对你有所帮助。