epfldata / squall

A streaming / online query processing / analytics engine based on Apache Storm
Apache License 2.0
270 stars 96 forks source link

Exception occurs when compiling ParserMain.java #34

Closed hgqislub closed 9 years ago

hgqislub commented 9 years ago

I want to run squall in local model. And do as what https://github.com/epfldata/squall/wiki/Troubleshooting suggests.

I import the source code from squall-$VERSION/src and reference to the following set of jars (exactly in this order): 1、all the jar files inside squall-0.2/storm-0.9.4-incubating/lib 2、all the jar files from squall-0.2/contrib

But when I run ParserMain.java, Exception happens like this: { Exception in thread "main" java.lang.NoSuchMethodError: clojure.lang.RT.keyword(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Keyword; at backtype.storm.LocalClusterinit.init0(Unknown Source) at backtype.storm.LocalClusterinit.(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:270) at clojure.lang.RT.loadClassForName(RT.java:1578) at clojure.lang.RT.load(RT.java:399) at clojure.lang.RT.load(RT.java:381) at clojure.core$load$fn4519.invoke(core.clj:4915) at clojure.core$load.doInvoke(core.clj:4914) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.lang.Var.invoke(Var.java:365) at backtype.storm.LocalCluster.(Unknown Source) at plan_runner.utilities.StormWrapper.submitTopology(StormWrapper.java:156) at plan_runner.main.Main.(Main.java:104) at sql.main.ParserMain.main(ParserMain.java:43) }

I am sure I have imported clojure-1.5.1.jar, and I've found "keyword(String ns, String name)" function in "clojure.lang.RT.class". I don't know why this happens. How can I solve this problem? Thanks.

hgqislub commented 9 years ago

Oh, thank god. I find the answer. When I remove leiningen-1.7.1-standalone.jar from the project, this exception has gone away.

leiningen-1.7.1-standalone.jar( in squall-0.2/contrib) may conflicts with clojure-1.5.1.jar (in squall-0.2/storm-0.9.4-incubating/lib) ??

akathorn commented 9 years ago

Thank you for reporting this.

It is indeed possible that they conflict, as Squall 0.2 was developed with Storm 0.9.2.

The current version doesn't use Leiningen, so this should be fine for future releases.