我遵循这个教程:https://learn.microsoft.com/en-us/azure/hdinsight/storm/apache-storm-develop-java-topology
到目前为止我所做的是
maven设置- vi *.java文件(
src/main/java/com/microsoft/example
目录下)- RandomSentenceSpout.java
- SplitSentence.java
- WordCount.java
- WordCountTopology.java
- mvn编译
jar cf storm.jar *.class
(intarget/classes/com/microsoft/example
目录)- RandomSentenceSpout.class SplitSentence.class WordCount.class wordcountoptopology .class
- 以上4个文件被用来制作
storm.jar
文件
然后,我尝试了
storm jar ./storm.jar com.microsoft.example.WordCountTopology WordCountTopology
和
storm jar ./storm.jar WordCountTopology
,但这两个都失败了,说:
错误:无法找到或加载主类com.microsoft.example.WordCountTopology
或
错误:无法找到或加载主类WordCountTopology
根据一份文件,它说
语法:storm jar topology-jar-path class…
使用指定的参数运行类的主方法。暴风雨~/中的jar文件和配置文件。Storm被放在类路径上。这个过程是配置后,StormSubmitter将在topology-jar-path
我找不到要修理的地方。
如何解决这个问题?
我认为你的jar文件不包含类WordCountTopology。你可以通过jar tf storm.jar | grep WordCountTopology
查看。
看起来你的jar没有包含一个Manifest文件来保存主类的信息。
尝试包含Manifest文件,或者您可以运行下面的java命令来包含Manifest文件
希望这有效!
jar cvfe storm.jar mainClassNameWithoutDotClassExtn *.class