backtype.storm.topology.TopologyBuilder.setBolt方法的NoSuchMethodError异常

时间:2014-05-08 03:10:32

标签: java apache-storm

尝试运行风暴入门示例代码(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)

我检查过方法签名,一切似乎都正确。任何有关该问题的见解将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:3)

从您的pom文件

我可以看到您使用的是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。