Java连接到azure事件中心:SunCertPathBuilderException

时间:2017-02-10 15:27:31

标签: java azure azure-eventhub

我不习惯java世界,所以我不确定我的问题是在我的Azure设置还是java设置上。尝试下面的教程后,我收到以下异常。

https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-java-get-started-receive-eph

Failure while registering:     
com.microsoft.azure.eventprocessorhost.EPHConfigurationException:   
Encountered error while fetching the list of EventHub PartitionIds: 
sun.security.validator.ValidatorException: PKIX path building failed: 
sun.security.provider.certpath.SunCertPathBuilderException: unable to find 
valid certification path to requested target

在样本的这一行中出现异常:

 host.registerEventProcessor(EventProcessor.class, options).get();

我做了教程的.NET版本没什么问题。在这种情况下发送和接收工作。任何见解?在过去的几天里,我一直在摸索着没有运气。

3 个答案:

答案 0 :(得分:3)

我搜索了您的问题并找到了一些有助于解决问题的有用博客,请参阅下面的博客。

  1. https://www.mkyong.com/webservices/jax-ws/suncertpathbuilderexception-unable-to-find-valid-certification-path-to-requested-target/
  2. http://nodsw.com/blog/leeland/2006/12/06-no-more-unable-find-valid-certification-path-requested-target
  3. 以上博客都使用工具InstallCert来获取可以添加到本地密钥库的服务器证书。请关注GitHub存储库的自述文件。

答案 1 :(得分:2)

使用浏览器下载证书并将其添加到Java密钥库中,如下所示:

C:\java\jdk1.8.0_60\jre\lib\security>C:\java\jdk1.8.0_60\jre\bin\keytool.exe -import -alias alias -file C:\path\to\file.crt -keystore C:\java\jdk1.8.0_60\jre\lib\security>cacerts -storepass changeit

您需要确保将证书添加到正确的Java安装中,或者只需添加到所有安装,只要您有多个安装。

答案 2 :(得分:0)

添加证书:

keytool -keystore C:\Program" "Files\Java\jre1.8.0_171\lib\security\cacerts -import -alias aliasName
-file C:\Users\cg\Downloads\springio.cer  -storepass changeit

检查已安装的证书:

keytool -keystore C:\Program" "Files\Java\jre1.8.0_171/lib/security/cacerts -storepass changeit -list