0

我試圖從「REALTIME事件處理HIFOOP,NIFI,KAFKA和風暴」構建「流模擬器」Hortonworks教程特別是從它的「實驗室0:使用APACHE NIFI的入住,路線和土地實時活動「。Hortonworks教程生成失敗,sun.security.provider.certpath.SunCertPathBuilderException

http://hortonworks.com/hadoop-tutorial/realtime-event-processing-nifi-kafka-storm/#stream-simulator-lab0

爲了給你粗略的概念,這是什麼,這裏從Hortoworks頁面描述:「流模擬器是一個輕量級的框架,其產生的卡車事件數據模擬器使用紐約市的卡車路線(KML ),其中定義了具有經度和緯度信息的駕駛員道路路徑 模擬器使用Akka來簡化併發性,消息傳遞和繼承,它具有兩個普通舊Java對象(PO​​JOS),一個用於卡車,另一個用於生成事件的驅動程序。

當我嘗試建立模擬器直接從最新的Hortonworks沙盒(HDP 2.4)通過構建Maven的報告結束這個錯誤:

[ERROR] Failed to execute goal on project storm-kafka-0.8-plus: 
Could not resolve dependencies for project net.wurstmeister.storm: 
storm-kafka-0.8-plus:jar:0.4: Failed to collect dependencies at org.apache.storm:storm-core:jar: 
0.9.1-incubating -> clj-time:clj-time:jar:0.4.1: 
Failed to read artifact descriptor for clj-time:clj-time:jar:0.4.1: 
Could not transfer artifact clj-time:clj-time:pom:0.4.1 from/to clojars (https://clojars.org/repo/): 
sun.security.validator.ValidatorException: PKIX path building failed:  
sun.security.provider.certpath.SunCertPathBuilderException: 
unable to find valid certification path to requested target 

更詳細的(Maven的-e)揭示了這些錯誤的詳細信息:

... 
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:385) 
    at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292) 
    at sun.security.validator.Validator.validate(Validator.java:260) 
    at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326) 
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231) 
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126) 
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1454) 
    ... 74 more 
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196) 
    at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268) 
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380) 
    ... 80 more 

,這裏是pom.xml中導致生成錯誤:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
         http://maven.apache.org/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>com.hortonworks</groupId> 
<artifactId>storm-demo</artifactId> 
<packaging>pom</packaging> 
<version>1.0</version> 
<name>Storm Demo Parent Project</name> 

<modules> 
    <module>transport-domain</module> 
    <module>stream-simulator</module> 
    <module>storm-streaming</module> 
    <module>storm-demo-webapp</module> 
    <module>storm-kafkaplus</module> 
    <!-- <module>iot-integration-tester</module> --> 
</modules> 

<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 

<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

任何想法如何解決這個問題?請幫忙!

更新:接下來生成錯誤

固定證書有問題之後,我現在有一個錯誤:

[INFO] ------------------------------------------------------------------------ 
[INFO] Building Storm Demo Parent Project 1.0 
[INFO] ------------------------------------------------------------------------ 
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/maven-metadata.xml 
[WARNING] Could not transfer metadata org.apache.maven.plugins:maven-compiler-plugin/maven-metadata.xml from/to central (https://repo.maven.apache.org/maven2): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
[INFO] ------------------------------------------------------------------------ 
[INFO] Reactor Summary: 
[INFO] 
[INFO] transport-domain ................................... SUCCESS [ 2.233 s] 
[INFO] stream-simulator ................................... SUCCESS [ 3.694 s] 
[INFO] storm-streaming .................................... SUCCESS [01:13 min] 
[INFO] storm-demo-webapp .................................. SUCCESS [ 8.642 s] 
[INFO] storm-kafka-0.8-plus ............................... SUCCESS [ 17.440 s] 
[INFO] Storm Demo Parent Project .......................... FAILURE [ 0.171 s] 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 01:45 min 
[INFO] Finished at: 2016-07-26T14:15:46+00:00 
[INFO] Final Memory: 119M/826M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Error resolving version for plugin 'org.apache.maven.plugins:maven-compiler-plugin' from the repositories [local (/root/.m2/repository), central (https://repo.maven.apache.org/maven2)]: Plugin not found in any plugin repository 

回答

0

你的Maven插件嘗試連接到HTTPS遠程倉庫,即https://clojars.org/repo/

您可以使用此帖子的解決方案之一:

Problems using Maven and SSL behind proxy

我推薦的解決方案是:

(步驟可以瀏覽器之間會發生變化)

  • 使用瀏覽器(使用Chrome)去https://clojars.org/repo/
  • 點擊鎖圖標,然後選擇「詳細信息「並單擊」查看證書「
  • 轉到」詳細信息「選項卡並選擇」複製到文件「
  • 選擇類型「Base 64 X.509(。CER)」,並保存到某個地方
  • 現在打開一個命令提示符,然後鍵入(使用自己的路徑):

    keytool -import -file C:\temp\mavenCert.cer -keystore C:\temp\mavenKeystore

  • 現在,您可以用參數

    -Djavax.net.ssl.trustStore=C:\temp\mavenKeystore再次運行該命令

  • linux下使用絕對路徑

    現在

可以運行Maven作爲構建:

/root/maven/bin/mvn clean package -Djavax.net.ssl.trustStore=C:\temp\mavenKeystore

+0

所做的一切都是按照你的建議,還是同樣的錯誤。在linux上,當創建密鑰庫時,keytool讓你爲這個新的密鑰庫設置密碼。可能這個密碼是maven的問題嗎? – dokondr

+1

如果您爲keysotre創建了密碼,那麼比傳遞'mvn'命令多一個參數:'javax.net.ssl.keyStorePassword = yourpwd' -useful link:http://maven.apache.org/guides/mini/guide- repository-ssl.html - 並非所有屬性都必須根據您的精確設置進行設置:商店類型可能保留爲默認值,密碼可能爲空。 –

+0

密鑰庫密碼不是問題。生成失敗,因爲我使用https://clojars.org/repo/的證書而不是https://clojars.org/repo/clj-time/。現在我有另一個maven錯誤:[錯誤]錯誤解決版本插件'org.apache.maven.plugins:maven-compiler-plugin'從存儲庫[本地(/root/.m2/repository),中央(https:/ /repo.maven.apache.org/maven2)]:在任何插件庫中找不到插件。請在我更新的帖子中查看詳情。 – dokondr