1. 程式人生 > >java.lang.NoClassDefFoundError: org/apache/storm/topology/IRichSpout

java.lang.NoClassDefFoundError: org/apache/storm/topology/IRichSpout

執行storm就報一個錯:java.lang.NoClassDefFoundError: org/apache/storm/topology/IRichSpout

找不到Spout,明明是引入了storm-core的pom資訊

仔細檢查發現,在引入pom資訊中指定了scop域為provided,但程式碼中執行storm是本地模式,所以執行時找不到strom相關的jar

去掉scope就OK了。但如果將storm程式打包到storm叢集環境執行,需要指定scope為provided,否則叢集上已經包含了storm-core的jar,該storm-core中包含default配置檔案,這樣兩個scorm-core會導致衝突。