尝试运行风暴入门示例代码(https://github.com/storm-book/examples-ch03-topologies)时:
> storm jar target/Topologies-0.0.1-SNAPSHOT.jar countword.TopologyMain src/main/resources/words.txt
我收到以下异常:
Exception in thread "main" java.lang.NoSuchMethodError: backtype.storm.topology.TopologyBuilder.setBolt(Ljava/lang/String;Lbacktype/storm/topology/IRichBolt;Ljava/lang/Integer;)Lbacktype/storm/topology/BoltDeclarer;
at countword.TopologyMain.main(TopologyMain.java:23)
我检查过方法签名,一切似乎都正确。任何有关该问题的见解将不胜感激。谢谢!
答案 0 :(得分:3)
我可以看到您使用的是strom版本0.7.1
<dependency>
<groupId>storm</groupId>
<artifactId>storm</artifactId>
<version>0.7.1</version>
具有方法签名
public BoltDeclarer setBolt(String id, IBasicBolt bolt, Integer parallelism_hint);
将该版本更改为0.9.0.1
,您就可以运行该
<dependency>
<groupId>storm</groupId>
<artifactId>storm</artifactId>
<version>0.9.0.1</version>
</dependency>
答案 1 :(得分:0)
使用风暴版本0.9.0.1更新pom后,您需要使用mvn clean install
然后mvn package
来更新发送到群集的jar。