これはある種のバージョン管理の問題である可能性があると思われますが、それでもその根底には到達できません。https://github.com/velvia/ScalaStormに基づく Scala DSL を使用して、Scala 2.10 で play2.1/storm プロジェクトをセットアップしようとしています。DSL ファイルをプロジェクトにコピーして編集しました。同じプロジェクトから WordCountTopology の例を実装しようとすると、私の問題が発生します。例の直接コピー/貼り付けは正常にコンパイルされ、Eclipse は何も文句を言いませんが、メイン関数を実行すると、classNotFoundExceptions が発生します。
クラスは明確に定義されており、それらを使用する行 (builder.setSpout と builder.setBolt の行) をコメントアウトし、ClassNotFound クラス (RichStormSpout、WordCount、SplitSentence) の新しいオブジェクトを作成するだけですが、何もしません。コンパイルして問題なく動作します。
どんな助けでも大歓迎です
編集:ここにスタックトレースがあります:
│java.lang.RuntimeException: java.lang.ClassNotFoundException: storm.WordCount
│ at backtype.storm.utils.Utils.deserialize(Utils.java:70) ~[storm-0.8.2.jar:na]
│ at backtype.storm.utils.Utils.getSetComponentObject(Utils.java:199) ~[storm-0.8.2.jar:na]
│ at backtype.storm.daemon.task$get_task_object.invoke(task.clj:56) ~[storm-0.8.2.jar:na]
│ at backtype.storm.daemon.task$mk_task_data$fn__3766.invoke(task.clj:158) ~[storm-0.8.2.jar:na]
│ at backtype.storm.util$assoc_apply_self.invoke(util.clj:731) ~[storm-0.8.2.jar:na]
│ at backtype.storm.daemon.task$mk_task_data.invoke(task.clj:152) ~[storm-0.8.2.jar:na]
│Caused by: java.lang.ClassNotFoundException: storm.WordCount
│ at java.net.URLClassLoader$1.run(URLClassLoader.java:202) ~[na:1.6.0_35]
│ at java.security.AccessController.doPrivileged(Native Method) ~[na:1.6.0_35]
│ at java.net.URLClassLoader.findClass(URLClassLoader.java:190) ~[na:1.6.0_35]
│ at java.lang.ClassLoader.loadClass(ClassLoader.java:306) ~[na:1.6.0_35]
│ at java.lang.ClassLoader.loadClass(ClassLoader.java:247) ~[na:1.6.0_35]
│ at sbt.PlayCommands$$anonfun$53$$anonfun$55$$anon$2.loadClass(PlayCommands.scala:535) ~[na:na]