当前位置: 首页 > 面试题库 >

Java NoSuchAlgorithmException-SunJSSE,sun.security.ssl.SSLContextImpl $ DefaultSSLContext

顾跃
2023-03-14
问题内容

背景

我一直在自己的Eclipse项目中使用Authorize.net
SDK。一切都很好。然后,我需要将其添加到我的主项目中。我将依赖项添加到类路径中,然后将其复制到所需的代码块中。它应该起作用了。

问题

长话短说,代码在我放置的地方不起作用。但是,当我将其直接应用到项目中的主要方法时,它将起作用。

在无法正常工作的地方,我使用调试器逐步检查了代码,发现以下异常:

java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)

抛出:

HttpResponse httpResponse = httpClient.execute(httpPost);

注意:Apache的httpClient =
DefaultHttpClient

我现在完全迷住了。不要导致此错误的原因。在Eclipse中,这两种产品似乎都针对同一JRE。他们也都有httpclient-4.0.1.jar。请注意,有问题的项目还具有工作项目没有的其他一些依赖项{boneCP,guava,mysql_connector_java,protobuf}

我不认为多余的jar是原因,因为问题代码在项目中的其他位置起作用。

任何关于出问题的想法都将受到极大的赞赏,我花了整整一天的时间进行调试,不知道下一步该怎么做。

谢谢。


问题答案:

在进行更多搜索之后,我发现错误可能与其他问题有关,例如无效的密钥库,密码等。

然后,我记得在为网络连接测试SSL时,我设置了两个VM参数。

我删除了以下VM参数以解决此问题:

-Djavax.net.ssl.keyStore=mySrvKeystore -Djavax.net.ssl.keyStorePassword=123456

注意:此密钥库不再存在,因此这可能就是Exception的原因。



 类似资料:
  • Oracle 的 Java SE 的 JSSE 实现是包含了一个名为 SunJSSE 的供应商,通过 JCA 来预装和预注册。这个供应商提供以下加密服务: SSL 3.0 和 TLS 1.0 安全协议的实现 最常见 SSL 和 TLS 密码套件的实现,其中包括认证、密钥协议、加密和完整性保护 一个基于 x.509 的密钥管理器的实现,用于从标准的 JCA keystore 中选择合适的认证密钥 一

  • 我对量角器刚刚入门,开始教程的时候就被堵了。我找不到错误的真正来源... 我所做的: null null 欢迎任何帮助!

相关阅读

相关文章

相关问答