Java/Websphere NoSuchProviderException:IBMCertPath

Java/Websphere NoSuchProviderException: IBMCertPath

我最近在我的公司接手了一项任务,该任务涉及实施一个应用程序,该应用程序目前已 运行 离开员工的 windows 桌面,并将该代码迁移到用于办公室。

该服务器还 运行 IBM 的 websphere,其中包含许多公司较大的 web 应用程序并使用 java 1.6。

撇开组织要点(这是一家大公司,大部分编码看起来像西部片意大利面,使用旧的遗留系统,如果人们对此一无所知,我不会感到惊讶),我的计划很简单降级代码(从 1.7 降级到 1.6 很简单),然后将此应用程序移动到 运行nable jar,并通过 shell 脚本调用它。

但是,我现在意识到为什么这个应用程序从未迁移到我们的生产服务器上,因为我无法在 UNIX 系统中 运行 得到它。

首先,我 运行 遇到一个问题,其中(我可能对此有误)用作应用程序一部分的 SSL 连接会引发错误(与此问题相同的错误:Error accessing a Web Service with SSL ) 经过一番阅读,似乎任何 java 应用程序 运行 在带有 Websphere 的服务器上(如果应用程序不在 websphere 中)似乎无法完成,因此您必须手动设置一些 java 安全属性来做到这一点(我在我的主要方法开始时就做了)。

这样做之后,我克服了最初的错误,但我现在遇到了这个错误

"com.ibm.jsse2.util.j: PKIX path validation failed: java.security.NoSuchProviderException: no such provider: IBMCertPath"

如果有人问过这个问题,对不起,我好像找不到。请link在这里,我会关闭这个问题。

您收到错误是因为已指定使用 IBMCertPath 提供程序,但 java 安全部门不知道该提供程序是什么。

您需要确保 com.ibm.security.cert.IBMCertPath 在您的 java.security 文件的提供商列表中。参见:

https://www-01.ibm.com/support/knowledgecenter/SSYKE2_6.0.0/com.ibm.java.security.component.60.doc/security-component/gen_info_sec_prov.html