Java HttpClient NoSuchAlgorithmException

时间:2009-12-22 20:27:07

标签: java httpclient

我正在使用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)
...

2 个答案:

答案 0 :(得分:2)

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

与普通浏览器不同,http客户端不太清楚如何使用证书,你可能需要自己添加它才能使它运行良好。

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

另请参阅:HttpClient文档中的SSL Guide

答案 1 :(得分:1)

不是直接答案,但Jake OchsEclipse Community Forumseclipse.platform.rcp newsgroupLotus Expeditor Forumhere上的StackOverflow上报告了同样的问题但是没有收到任何可以帮助解决这个问题的反馈(至少没有公开的信息)。实际上,最好的答案可能是Eclipse论坛中的答案:

  

如果您在Lotus XPD之上构建,我会使用IBM的支持渠道寻求帮助。特别是当你在stacktraces中看到'com.ibm.rcp *'时......

我想这不是你所期待的,但这是恕我直言,因为我不确定所使用的算法和提供算法实现的库有很多公开信息。