Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java backtype.storm.topology.TopologyBuilder.setBolt方法的NoSuchMethodError异常_Java_Apache Storm - Fatal编程技术网

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

Java backtype.storm.topology.TopologyBuilder.setBolt方法的NoSuchMethodError异常,java,apache-storm,Java,Apache Storm,尝试运行Storm入门示例代码()时: 我得到以下例外情况: 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;

尝试运行Storm入门示例代码()时:

我得到以下例外情况:

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)

我已经检查了方法签名,似乎都是正确的。如能深入了解该问题,将不胜感激。谢谢

从您的pom文件中,我可以看到您正在使用strom版本
0.7.1

<dependency>
  <groupId>storm</groupId>
  <artifactId>storm</artifactId>
  <version>0.7.1</version>
将该版本更改为
0.9.0.1
,您将能够运行该版本

<dependency>
  <groupId>storm</groupId>
  <artifactId>storm</artifactId>
  <version>0.9.0.1</version>
</dependency>

暴风雨
暴风雨
0.9.0.1

使用storm版本0.9.0.1更新pom后,您需要进行
mvn清洁安装
,然后使用
mvn包
来更新发送到集群的jar。

您是否检查了您使用的jar版本并具有该类?我使用的是storm v。0.9.0.1,并在检查参数时引用此引用()。从代码库()的第138行判断,文档似乎没有过时。我现在没有时间验证这一点,但孵化器风暴的当前git状态(截至此评论的时间戳)解决了这个问题。如果有人也验证了尝试的方法不适用于v0.9.0.1,但适用于当前的孵化器风暴,并将其作为答案提交给此线程,我将高兴地标记为答案。如果是这样的话,我真不敢相信这个方法从v0.9.0.1之前的工作,然后不工作,现在又工作了。由于不太可能,我怀疑自己是否理解自己的观察结果。在得到加强之前,这些信息可能对其他人有用。@ant:你能把你提到的酝酿风暴的maven坐标贴出来吗?我不知道你指的是哪个版本的maven。我有同样的问题,需要让它工作。谢谢不幸的是,我得到了同样的错误:线程“main”java.lang.NoSuchMethodError中的异常:backtype.storm.topology.TopologyBuilder.setBolt(Ljava/lang/String;Lbacktype/storm/topology/IRichBolt;Ljava/lang/Integer;)Lbacktype/storm/topology/BoltDeclarer;位于countword.TopologyMain.main(TopologyMain.java:23)ubuntu@ip-10-250-45-151:~/gettingStartedWithStorm/ch03$tail pom.xml storm storm 0.9.0.1这意味着在运行时,它正在获取没有此类方法的storm jar的引用。您是在更新pom后创建快照的吗?很抱歉,但是当您说快照时,您是指我尝试运行的示例代码吗?如果是这样的话,我(认为我)用命令mvn compile和mvn package重新构建了代码。在这里,我还看到了另一种可能性,您运行代码使用的版本是什么?storm:0.9.0.1,示例代码:current(上次更新2年前)repo,mvn:3.0.4
public BoltDeclarer setBolt(String id, IBasicBolt bolt, Integer parallelism_hint);
<dependency>
  <groupId>storm</groupId>
  <artifactId>storm</artifactId>
  <version>0.9.0.1</version>
</dependency>