我有一个使我发疯的问题。 我有一个带有p2的RCP应用程序,启动时会调用一个Web服务(在https中)进行登录。证书是自签名的。由于我不想修改jre cacert,因此我将自定义cacert放在我的一个插件中,因此我使用功能函数提取了此插件,因此我的cacerts在FS上而不是在jar中。
在调用WS之前,我先设置了Java属性
System.setProperty("javax.net.ssl.trustStore","mystruststorepath");
System.setProperty("javax.net.ssl.trustStorePassword","mystruststorepsw");
现在疯了。
我不知道这与p2有什么关系,但是我能想象的唯一解释是p2插件应用了某种类型的truststore缓存,因此无法以编程方式对其进行更改。我不知道这是否有可能。
有人遇到同样的问题吗?
我想证明这些事情
这是我得到的错误
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target