我有两台笔记本电脑在运行相同的项目。两个实例都配置为使用Java JDK 6(相同的次要版本)。但是,一台计算机无法连接到远程REST服务。通过使用-Djavax.net.debug=all
选项运行应用程序,我得出结论,问题出在 ClientKeyExchange 步骤,因为在有问题的笔记本电脑上不会发生此步骤。
A post in the IBM developer community表示“正在使用的硬件加密设备不在受支持的列表中”。但是我对“硬件加密设备”一无所知。
我能说的是“启用密码套件”,“排除密码套件”,“密码套件已设置为”通过-Djavax.net.debug=all
打印的列表在两台机器上都是相同的。
使用JDK cacerts。
答案 0 :(得分:1)
找到解决方案。项目正在使用JAX-RS,因此通过该框架调用外部服务,因此我无法挖掘问题,因为没有错误。所以我尝试了不同的方法:尝试使用显示javax.net.ssl.HttpsURLConnection
的简单java.lang.NoClassDefFoundError: Could not initialize class javax.crypto.SunJCE_b
来访问该服务,因此我更改了local_policy.jar
和US_export_policy.jar
文件(感谢@Charlie { {3}})
我想我已经改变了第一台笔记本电脑上的政策罐,忘了在新笔记本电脑上这样做。