Note that there are some explanatory texts on larger screens.

plurals
  1. POTwitter Storm's Testing API won't initialize
    primarykey
    data
    text
    <p>I discovered backtype.storm.Testing while reading <a href="https://stackoverflow.com/questions/16549265/testing-storm-bolts-and-spouts">this SO question</a> and got excited, but I haven't been able to get it to work because when I actually go to run the tests (from Java), the testing class won't load.</p> <p>I wanted to use the functions from Testing exhibited in <a href="https://github.com/xumingming/storm-lib/blob/master/src/jvm/storm/TestingApiDemo.java" rel="nofollow noreferrer">xumingming's TestingApiDemo</a>, but when I actually run the tests I'm getting an ExceptionInInitializerError followed by a bunch of NoClassDefFoundErrors because it couldn't initialize backtype.storm.Testing.</p> <p>What's going wrong with Testing? There's no problem at compile-time. My best guess is that it needs something from Clojure which is being dynamically loaded at runtime. Has anyone else seen this?</p> <p>Here's most of the relevant stack trace:</p> <pre><code>java.lang.ExceptionInInitializerError: null at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:171) at backtype.storm.zookeeper$loading__4784__auto__.invoke(zookeeper.clj:1 ) at backtype.storm.zookeeper__init.load(Unknown Source) at backtype.storm.zookeeper__init.&lt;clinit&gt;(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:249) at clojure.lang.RT.loadClassForName(RT.java:2056) at clojure.lang.RT.load(RT.java:419) at clojure.lang.RT.load(RT.java:400) at clojure.core$load$fn__4890.invoke(core.clj:5415) at clojure.core$load.doInvoke(core.clj:5414) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5227) at clojure.core$load_lib.doInvoke(core.clj:5264) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:603) at clojure.core$load_libs.doInvoke(core.clj:5302) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:603) at clojure.core$require.doInvoke(core.clj:5381) at clojure.lang.RestFn.invoke(RestFn.java:408) at backtype.storm.cluster$loading__4784__auto__.invoke(cluster.clj:1) at backtype.storm.cluster__init.load(Unknown Source) at backtype.storm.cluster__init.&lt;clinit&gt;(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:249) at clojure.lang.RT.loadClassForName(RT.java:2056) at clojure.lang.RT.load(RT.java:419) at clojure.lang.RT.load(RT.java:400) at clojure.core$load$fn__4890.invoke(core.clj:5415) at clojure.core$load.doInvoke(core.clj:5414) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5227) at clojure.core$load_lib.doInvoke(core.clj:5264) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:603) at clojure.core$load_libs.doInvoke(core.clj:5302) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:603) at clojure.core$require.doInvoke(core.clj:5381) at clojure.lang.RestFn.invoke(RestFn.java:408) at backtype.storm.daemon.nimbus__init.load(Unknown Source) at backtype.storm.daemon.nimbus__init.&lt;clinit&gt;(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:249) at clojure.lang.RT.loadClassForName(RT.java:2056) at clojure.lang.RT.load(RT.java:419) at clojure.lang.RT.load(RT.java:400) at clojure.core$load$fn__4890.invoke(core.clj:5415) at clojure.core$load.doInvoke(core.clj:5414) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5227) at clojure.core$load_lib.doInvoke(core.clj:5264) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:603) at clojure.core$load_libs.doInvoke(core.clj:5302) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:603) at clojure.core$require.doInvoke(core.clj:5381) at clojure.lang.RestFn.invoke(RestFn.java:408) at backtype.storm.testing$loading__4784__auto__.invoke(testing.clj:1) at backtype.storm.testing__init.load(Unknown Source) at backtype.storm.testing__init.&lt;clinit&gt;(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:249) at clojure.lang.RT.loadClassForName(RT.java:2056) at clojure.lang.RT.load(RT.java:419) at clojure.lang.RT.load(RT.java:400) at clojure.core$load$fn__4890.invoke(core.clj:5415) at clojure.core$load.doInvoke(core.clj:5414) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:5227) at clojure.core$load_lib.doInvoke(core.clj:5264) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:603) at clojure.core$load_libs.doInvoke(core.clj:5302) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:605) at clojure.core$use.doInvoke(core.clj:5392) at clojure.lang.RestFn.invoke(RestFn.java:408) at backtype.storm.LocalCluster$loading__4784__auto__.invoke(LocalCluster .clj:1) at backtype.storm.LocalCluster__init.load(Unknown Source) at backtype.storm.LocalCluster__init.&lt;clinit&gt;(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:249) at clojure.lang.RT.loadClassForName(RT.java:2056) at clojure.lang.RT.load(RT.java:419) at clojure.lang.RT.load(RT.java:400) at clojure.core$load$fn__4890.invoke(core.clj:5415) at clojure.core$load.doInvoke(core.clj:5414) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.lang.Var.invoke(Var.java:415) at backtype.storm.LocalCluster.&lt;clinit&gt;(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:171) at backtype.storm.testing4j$loading__4784__auto__.invoke(testing4j.clj:1 ) at backtype.storm.testing4j__init.load(Unknown Source) at backtype.storm.testing4j__init.&lt;clinit&gt;(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:249) at clojure.lang.RT.loadClassForName(RT.java:2056) at clojure.lang.RT.load(RT.java:419) at clojure.lang.RT.load(RT.java:400) at clojure.core$load$fn__4890.invoke(core.clj:5415) at clojure.core$load.doInvoke(core.clj:5414) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.lang.Var.invoke(Var.java:415) at backtype.storm.Testing.&lt;clinit&gt;(Unknown Source) at my.package.storm.bolts.MockTupleHelpers.testTuple(MockTupleHelpers.ja va:69) </code></pre> <p>Update: <a href="https://github.com/nathanmarz/storm/blob/0.8.2/src/clj/backtype/storm/testing4j.clj" rel="nofollow noreferrer">I found the place</a> where I think the Testing class is being generated using Clojure. Perhaps the version of the Clojure libraries being used by my project (1.4) don't supply some necessary type in here? I'm using Storm 0.8.2.</p> <p>Thanks,</p> <p>-Daniel</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload