-
-
Save bberak/47b2c956b83b8df2ecd5 to your computer and use it in GitHub Desktop.
Clojure :gen-class compile problems
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
java.lang.ClassNotFoundException: datawolf_dataflow.io.HttpReader, compiling:(HttpPollingIO.clj:1:1) | |
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3628) | |
at clojure.lang.Compiler.compile1(Compiler.java:7323) | |
at clojure.lang.Compiler.compile1(Compiler.java:7313) | |
at clojure.lang.Compiler.compile(Compiler.java:7390) | |
at clojure.lang.RT.compile(RT.java:399) | |
at clojure.lang.RT.load(RT.java:444) | |
at clojure.lang.RT.load(RT.java:412) | |
at clojure.core$load$fn__5448.invoke(core.clj:5866) | |
at clojure.core$load.doInvoke(core.clj:5865) | |
at clojure.lang.RestFn.invoke(RestFn.java:408) | |
at clojure.core$load_one.invoke(core.clj:5671) | |
at clojure.core$load_lib$fn__5397.invoke(core.clj:5711) | |
at clojure.core$load_lib.doInvoke(core.clj:5710) | |
at clojure.lang.RestFn.applyTo(RestFn.java:142) | |
at clojure.core$apply.invoke(core.clj:632) | |
at clojure.core$load_libs.doInvoke(core.clj:5749) | |
at clojure.lang.RestFn.applyTo(RestFn.java:137) | |
at clojure.core$apply.invoke(core.clj:632) | |
at clojure.core$require.doInvoke(core.clj:5832) | |
at clojure.lang.RestFn.invoke(RestFn.java:436) | |
at datawolf_dataflow.jobs.streaming_stock_market_quotes$loading__5340__auto____23.invoke(streaming_stock_market_quotes.clj:1) | |
at clojure.lang.AFn.applyToHelper(AFn.java:152) | |
at clojure.lang.AFn.applyTo(AFn.java:144) | |
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3623) | |
at clojure.lang.Compiler.compile1(Compiler.java:7323) | |
at clojure.lang.Compiler.compile1(Compiler.java:7313) | |
at clojure.lang.Compiler.compile(Compiler.java:7390) | |
at clojure.lang.RT.compile(RT.java:399) | |
at clojure.lang.RT.load(RT.java:444) | |
at clojure.lang.RT.load(RT.java:412) | |
at clojure.core$load$fn__5448.invoke(core.clj:5866) | |
at clojure.core$load.doInvoke(core.clj:5865) | |
at clojure.lang.RestFn.invoke(RestFn.java:408) | |
at clojure.core$load_one.invoke(core.clj:5671) | |
at clojure.core$load_lib$fn__5397.invoke(core.clj:5711) | |
at clojure.core$load_lib.doInvoke(core.clj:5710) | |
at clojure.lang.RestFn.applyTo(RestFn.java:142) | |
at clojure.core$apply.invoke(core.clj:632) | |
at clojure.core$load_libs.doInvoke(core.clj:5749) | |
at clojure.lang.RestFn.applyTo(RestFn.java:137) | |
at clojure.core$apply.invoke(core.clj:632) | |
at clojure.core$require.doInvoke(core.clj:5832) | |
at clojure.lang.RestFn.invoke(RestFn.java:421) | |
at datawolf_dataflow.core$loading__5340__auto____21.invoke(core.clj:1) | |
at clojure.lang.AFn.applyToHelper(AFn.java:152) | |
at clojure.lang.AFn.applyTo(AFn.java:144) | |
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3623) | |
at clojure.lang.Compiler.compile1(Compiler.java:7323) | |
at clojure.lang.Compiler.compile1(Compiler.java:7313) | |
at clojure.lang.Compiler.compile(Compiler.java:7390) | |
at clojure.lang.RT.compile(RT.java:399) | |
at clojure.lang.RT.load(RT.java:444) | |
at clojure.lang.RT.load(RT.java:412) | |
at clojure.core$load$fn__5448.invoke(core.clj:5866) | |
at clojure.core$load.doInvoke(core.clj:5865) | |
at clojure.lang.RestFn.invoke(RestFn.java:408) | |
at clojure.core$load_one.invoke(core.clj:5671) | |
at clojure.core$compile$fn__5453.invoke(core.clj:5877) | |
at clojure.core$compile.invoke(core.clj:5876) | |
at user$eval9$fn__16.invoke(form-init8127729821842262103.clj:1) | |
at user$eval9.invoke(form-init8127729821842262103.clj:1) | |
at clojure.lang.Compiler.eval(Compiler.java:6782) | |
at clojure.lang.Compiler.eval(Compiler.java:6772) | |
at clojure.lang.Compiler.load(Compiler.java:7227) | |
at clojure.lang.Compiler.loadFile(Compiler.java:7165) | |
at clojure.main$load_script.invoke(main.clj:275) | |
at clojure.main$init_opt.invoke(main.clj:280) | |
at clojure.main$initialize.invoke(main.clj:308) | |
at clojure.main$null_opt.invoke(main.clj:343) | |
at clojure.main$main.doInvoke(main.clj:421) | |
at clojure.lang.RestFn.invoke(RestFn.java:421) | |
at clojure.lang.Var.invoke(Var.java:383) | |
at clojure.lang.AFn.applyToHelper(AFn.java:156) | |
at clojure.lang.Var.applyTo(Var.java:700) | |
at clojure.main.main(main.java:37) | |
Caused by: java.lang.ClassNotFoundException: datawolf_dataflow.io.HttpReader | |
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) | |
at clojure.lang.DynamicClassLoader.findClass(DynamicClassLoader.java:69) | |
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) | |
at clojure.lang.DynamicClassLoader.loadClass(DynamicClassLoader.java:77) | |
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) | |
at java.lang.Class.forName0(Native Method) | |
at java.lang.Class.forName(Class.java:348) | |
at clojure.lang.RT.classForName(RT.java:2154) | |
at clojure.lang.RT.classForNameNonLoading(RT.java:2167) | |
at datawolf_dataflow.io.HttpPollingIO$loading__5340__auto____25.invoke(HttpPollingIO.clj:1) | |
at clojure.lang.AFn.applyToHelper(AFn.java:152) | |
at clojure.lang.AFn.applyTo(AFn.java:144) | |
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3623) | |
... 74 more | |
Exception in thread "main" java.lang.ClassNotFoundException: datawolf_dataflow.io.HttpReader, compiling:(HttpPollingIO.clj:1:1) | |
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3628) | |
at clojure.lang.Compiler.compile1(Compiler.java:7323) | |
at clojure.lang.Compiler.compile1(Compiler.java:7313) | |
at clojure.lang.Compiler.compile(Compiler.java:7390) | |
at clojure.lang.RT.compile(RT.java:399) | |
at clojure.lang.RT.load(RT.java:444) | |
at clojure.lang.RT.load(RT.java:412) | |
at clojure.core$load$fn__5448.invoke(core.clj:5866) | |
at clojure.core$load.doInvoke(core.clj:5865) | |
at clojure.lang.RestFn.invoke(RestFn.java:408) | |
at clojure.core$load_one.invoke(core.clj:5671) | |
at clojure.core$load_lib$fn__5397.invoke(core.clj:5711) | |
at clojure.core$load_lib.doInvoke(core.clj:5710) | |
at clojure.lang.RestFn.applyTo(RestFn.java:142) | |
at clojure.core$apply.invoke(core.clj:632) | |
at clojure.core$load_libs.doInvoke(core.clj:5749) | |
at clojure.lang.RestFn.applyTo(RestFn.java:137) | |
at clojure.core$apply.invoke(core.clj:632) | |
at clojure.core$require.doInvoke(core.clj:5832) | |
at clojure.lang.RestFn.invoke(RestFn.java:436) | |
at datawolf_dataflow.jobs.streaming_stock_market_quotes$loading__5340__auto____23.invoke(streaming_stock_market_quotes.clj:1) | |
at clojure.lang.AFn.applyToHelper(AFn.java:152) | |
at clojure.lang.AFn.applyTo(AFn.java:144) | |
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3623) | |
at clojure.lang.Compiler.compile1(Compiler.java:7323) | |
at clojure.lang.Compiler.compile1(Compiler.java:7313) | |
at clojure.lang.Compiler.compile(Compiler.java:7390) | |
at clojure.lang.RT.compile(RT.java:399) | |
at clojure.lang.RT.load(RT.java:444) | |
at clojure.lang.RT.load(RT.java:412) | |
at clojure.core$load$fn__5448.invoke(core.clj:5866) | |
at clojure.core$load.doInvoke(core.clj:5865) | |
at clojure.lang.RestFn.invoke(RestFn.java:408) | |
at clojure.core$load_one.invoke(core.clj:5671) | |
at clojure.core$load_lib$fn__5397.invoke(core.clj:5711) | |
at clojure.core$load_lib.doInvoke(core.clj:5710) | |
at clojure.lang.RestFn.applyTo(RestFn.java:142) | |
at clojure.core$apply.invoke(core.clj:632) | |
at clojure.core$load_libs.doInvoke(core.clj:5749) | |
at clojure.lang.RestFn.applyTo(RestFn.java:137) | |
at clojure.core$apply.invoke(core.clj:632) | |
at clojure.core$require.doInvoke(core.clj:5832) | |
at clojure.lang.RestFn.invoke(RestFn.java:421) | |
at datawolf_dataflow.core$loading__5340__auto____21.invoke(core.clj:1) | |
at clojure.lang.AFn.applyToHelper(AFn.java:152) | |
at clojure.lang.AFn.applyTo(AFn.java:144) | |
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3623) | |
at clojure.lang.Compiler.compile1(Compiler.java:7323) | |
at clojure.lang.Compiler.compile1(Compiler.java:7313) | |
at clojure.lang.Compiler.compile(Compiler.java:7390) | |
at clojure.lang.RT.compile(RT.java:399) | |
at clojure.lang.RT.load(RT.java:444) | |
at clojure.lang.RT.load(RT.java:412) | |
at clojure.core$load$fn__5448.invoke(core.clj:5866) | |
at clojure.core$load.doInvoke(core.clj:5865) | |
at clojure.lang.RestFn.invoke(RestFn.java:408) | |
at clojure.core$load_one.invoke(core.clj:5671) | |
at clojure.core$compile$fn__5453.invoke(core.clj:5877) | |
at clojure.core$compile.invoke(core.clj:5876) | |
at user$eval9$fn__16.invoke(form-init8127729821842262103.clj:1) | |
at user$eval9.invoke(form-init8127729821842262103.clj:1) | |
at clojure.lang.Compiler.eval(Compiler.java:6782) | |
at clojure.lang.Compiler.eval(Compiler.java:6772) | |
at clojure.lang.Compiler.load(Compiler.java:7227) | |
at clojure.lang.Compiler.loadFile(Compiler.java:7165) | |
at clojure.main$load_script.invoke(main.clj:275) | |
at clojure.main$init_opt.invoke(main.clj:280) | |
at clojure.main$initialize.invoke(main.clj:308) | |
at clojure.main$null_opt.invoke(main.clj:343) | |
at clojure.main$main.doInvoke(main.clj:421) | |
at clojure.lang.RestFn.invoke(RestFn.java:421) | |
at clojure.lang.Var.invoke(Var.java:383) | |
at clojure.lang.AFn.applyToHelper(AFn.java:156) | |
at clojure.lang.Var.applyTo(Var.java:700) | |
at clojure.main.main(main.java:37) | |
Caused by: java.lang.ClassNotFoundException: datawolf_dataflow.io.HttpReader | |
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) | |
at clojure.lang.DynamicClassLoader.findClass(DynamicClassLoader.java:69) | |
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) | |
at clojure.lang.DynamicClassLoader.loadClass(DynamicClassLoader.java:77) | |
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) | |
at java.lang.Class.forName0(Native Method) | |
at java.lang.Class.forName(Class.java:348) | |
at clojure.lang.RT.classForName(RT.java:2154) | |
at clojure.lang.RT.classForNameNonLoading(RT.java:2167) | |
at datawolf_dataflow.io.HttpPollingIO$loading__5340__auto____25.invoke(HttpPollingIO.clj:1) | |
at clojure.lang.AFn.applyToHelper(AFn.java:152) | |
at clojure.lang.AFn.applyTo(AFn.java:144) | |
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3623) | |
... 74 more |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns datawolf-dataflow.io.HttpPollingIO | |
(:import | |
[com.google.cloud.dataflow.sdk.coders StringUtf8Coder] | |
[datawolf_dataflow.io HttpPollingIO] | |
[datawolf_dataflow.io HttpReader]) | |
(:gen-class | |
:extends com.google.cloud.dataflow.sdk.io.UnboundedSource | |
:methods [[getUrls [] "[Ljava.lang.String;"] | |
[getSleepTimeInMs [] Integer]] | |
:init init | |
:state state | |
:constructors {["[Ljava.lang.String;" Integer] []})) | |
(defn -init [urls sleep-in-ms] | |
[[] {:urls urls | |
:sleep-in-ms sleep-in-ms}]) | |
(defn -generateInitialSplits [this desiredNumSplits options] | |
(let [all-urls (:urls (.state this)) sleep-in-ms (:sleep-in-ms (.state this))] | |
(doall (map (fn [urls] | |
(HttpPollingIO. (into-array urls) sleep-in-ms)) | |
(partition desiredNumSplits desiredNumSplits nil all-urls))))) | |
(defn -getCheckpointMarkCoder [this] | |
nil) | |
(defn -requiresDeduping [this] | |
false) | |
(defn -createReader [this options checkpointMark] | |
(HttpReader. this)) | |
(defn -validate [this]) | |
(defn -getDefaultOutputCoder [this] | |
(StringUtf8Coder/of)) | |
(defn -getUrls [this] | |
(:urls (.state this))) | |
(defn -getSleepTimeInMs [this] | |
(:sleep-in-ms (.state this))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns datawolf-dataflow.io.HttpReader | |
(:import | |
[com.mashape.unirest.http Unirest] | |
[org.joda.time Instant]) | |
(:gen-class | |
:extends com.google.cloud.dataflow.sdk.io.UnboundedSource$UnboundedReader | |
:init init | |
:state state | |
:constructors {[datawolf_dataflow.io.HttpPollingIO] []})) | |
(defmacro setf | |
[this key value] | |
`(swap! (.state ~this) into {~key ~value})) | |
(defmacro getf | |
[this key] | |
`(@(.state ~this) ~key)) | |
(defn -init [source] | |
[[] (atom {:source source | |
:index 0})]) | |
(defn -start [this] | |
true) | |
(defn -advance [this] | |
(let [index (getf this :index) | |
sleep-time (.getSleepTimeInMs (getf this :source))] | |
(setf this :index (inc index)) | |
(Thread/sleep sleep-time) | |
true)) | |
(defn -getCurrent [this] | |
(let [all-urls (.getUrls (getf this :source)) | |
current-index (mod (getf this :index) (alength all-urls)) | |
current-url (aget all-urls current-index) | |
http-result (-> (Unirest/get current-url) .asString)] | |
(println http-result) | |
http-result)) | |
(defn -getCurrentTimestamp [this] | |
(Instant/now)) | |
(defn -close [this]) | |
(defn -getCurrentSource [this] | |
(:source (.state this))) | |
(defn -getWatermark [this] | |
nil) | |
(defn -getCheckpointMark [this] | |
nil) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defproject datawolf-dataflow "0.1.0-SNAPSHOT" | |
:description "FIXME: write description" | |
:url "http://example.com/FIXME" | |
:license {:name "Eclipse Public License" | |
:url "http://www.eclipse.org/legal/epl-v10.html"} | |
:dependencies [[org.clojure/clojure "1.7.0"] | |
[com.google.cloud.dataflow/google-cloud-dataflow-java-sdk-all "1.1.0" :exclusions [com.google.code.findbugs/jsr305]] | |
[com.mashape.unirest/unirest-java "1.4.7"]] | |
:main datawolf-dataflow.core | |
:aot :all | |
:target-path "target/%s") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment