我从如何使用风暴书中导入了示例

当我运行它时,我得到了

INFO] An exception occured while executing the Java class. null 0


我在终端中使用了此命令

mvn -f pom.xml compile exec:java -Dstorm.topology=TopologyMain


码:

import spouts.WordReader;
import backtype.storm.Config;
import backtype.storm.LocalCluster;
import backtype.storm.topology.TopologyBuilder;
import backtype.storm.tuple.Fields;
import bolts.WordCounter; import bolts.WordNormalizer;
public class TopologyMain {

    public static void main(String[] args) throws InterruptedException {

        //Topology definition
        TopologyBuilder builder = new TopologyBuilder();
        builder.setSpout("word-reader",new WordReader());
        builder.setBolt("word-normalizer", new WordNormalizer()) .shuffleGrouping("word-reader");
        builder.setBolt("word-counter", new WordCounter(),1) .fieldsGrouping("word-normalizer", new Fields("word"));

        //Configuration
        Config conf = new Config(); conf.put("wordsFile", args[0]); conf.setDebug(false);
        //Topology run
        conf.put(Config.TOPOLOGY_MAX_SPOUT_PENDING, 1);
        LocalCluster cluster = new LocalCluster(); cluster.submitTopology("Getting-Started-Toplogie", conf, builder.createTopology());
        Thread.sleep(1000);
        cluster.shutdown();
     }
}


我也尝试过这个:

mvn -f pom.xml clean install


然后尝试使用这个

mvn exec:java -Dexec.mainClass="TopologyMain" -Dexec.args="src/main/resources/words.txt"


这里的错误

[0] Inside the definition for plugin 'exec-maven-plugin' specify the following:

<configuration> ... <mainClass>VALUE</mainClass></configuration>

最佳答案

您错误地使用了-D参数。应该改为:

mvn -f pom.xml compile exec:java -Dexec.mainClass=storm.topology.TopologyMain

这将指定要执行的主类。它应该与package storm.topology打包在一起,这在您粘贴的代码中并不明显。



另外,我也不知道为什么要明确指定POM文件。您应该在项目的根目录中创建一个pom.xml文件,然后不必在命令行上指定它。理想情况下,您应该输入文字,

mvn clean install

mvn exec:java -Dexec.mainClass="storm.topology.TopologyMain"

这将清理您的项目,对其进行编译,安装所有依赖项,然后以TopologyMain作为入口点执行该项目。

关于java - 运行Maven的异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21841857/

10-11 22:52
查看更多