运行storm就报错:java.lang.NoClassDefFoundError: org/apache/storm/topology/IRichSpout
找不到Spout,明明是引入了storm-core的pom信息
检查发现,在引入pom信息中指定了scop域为provided,但代码中运行storm是本地模式,所以运行时找不到strom相关的jar
<dependency> <groupId>org.apache.storm</groupId> <artifactId>storm-core</artifactId> <version>1.0.1</version> <scope>provided</scope> </dependency>
去掉scope就OK了。但如果将storm程序打包到storm集群环境运行,需要指定scope为provided,否则集群上已经包含了storm-core的jar,该storm-core中包含default配置文件,这样两个scorm-core会导致冲突。