0

我正在使用 IBM 构建的带有 HttpClient 的 Java,但收效甚微。每当我使用 HttpClient 对象的 executeMethod() 时,都会收到 NoSuchAlgorithmException。

Dec 22, 2009 2:59:58 PM com.ibm.rcp.security.ssl.PlatformSSLProtocolSocketFactory createPlatformSSLContext()
WARNING: CWPST502W:  The algorithm for recovering the key from the keystore cannot be found.
Throwable occurred: java.security.NoSuchAlgorithmException: K00b3
 at javax.net.ssl.SSLContext.getInstance(SSLContext.java:57)
 at com.ibm.rcp.security.ssl.PlatformSSLProtocolSocketFactory.createPlatformSSLContext(PlatformSSLProtocolSocketFactory.java:47)
 at com.ibm.rcp.security.ssl.PlatformSSLProtocolSocketFactory.getSSLContext(PlatformSSLProtocolSocketFactory.java:69)
 at com.ibm.rcp.security.ssl.PlatformSSLProtocolSocketFactory.createSocket(PlatformSSLProtocolSocketFactory.java:96)
 at com.ibm.rcp.security.ssl.PlatformSSLProtocolSocketFactory.createSocket(PlatformSSLProtocolSocketFactory.java:109)
 at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:706)
 at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
 at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
 at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:401)
 at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
...
4

2 回答 2

2

您似乎正在尝试使用 HTTPS,并且需要额外的工作才能使加密扩展正常工作。

与普通浏览器不同的 http 客户端不太了解如何使用证书,您可能必须自己添加它才能正常工作。

另一种可能性是您尝试使用客户端中不支持/未安装的加密提供程序。

另请参阅: HttpClient 文档中的SSL 指南

于 2009-12-22T20:48:50.073 回答
1

不是直接的答案,但Jake Ochs在Eclipse 社区论坛eclipse.platform.rcp 新闻组Lotus Expeditor 论坛和StackOverflow上报告了同样的问题,没有收到任何有助于解决此问题的反馈(至少没有公开可用的)。所以,实际上,最好的答案可能是来自 Eclipse 论坛的答案:

如果您在 Lotus XPD 之上构建,我会使用 IBM 的支持渠道寻求帮助。尤其是当您在堆栈跟踪中看到“com.ibm.rcp*”时...

我想这不是您所期望的,但恕我直言,这是一个很好的建议,因为我不确定所使用的算法和提供算法实现的库是否有很多公开信息。

于 2009-12-22T20:48:09.150 回答