Skip to content
This repository has been archived by the owner on Oct 21, 2022. It is now read-only.

A standalone jar that starts nREPL server with lighttable.nrepl.handler/lighttable-ops as handler can not be executed. #56

Closed
kohyama opened this issue Sep 18, 2015 · 3 comments

Comments

@kohyama
Copy link

kohyama commented Sep 18, 2015

I have a project whose -main starts a nrepl server with '(clojure.tools.nrepl.server/start-server :handler (clojure.tools.nrepl.server/default-handler #'lighttable.nrepl.handler/lighttable-ops))`

When I run the project with lein run, it works.

But lein uberjar-ed standalone.jar can't be executed by java -jar and throws java.lang.ExceptionInInitializerError below.

I don't sure if it's a problem of lighttable.nrepl.handler.
Does anyone know what's wrong?

More details: https://gist.github.com/kohyama/1fd05f5ece19a0e50b88

Exception in thread "main" java.lang.ExceptionInInitializerError
    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.classForName(RT.java:2163)
    at clojure.lang.RT.loadClassForName(RT.java:2182)
    at clojure.lang.RT.load(RT.java:436)
    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:1289)
    at lighttable.nrepl.handler$loading__5340__auto____777.invoke(handler.clj:1)
    at lighttable.nrepl.handler__init.load(Unknown Source)
    at lighttable.nrepl.handler__init.<clinit>(Unknown Source)
    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.classForName(RT.java:2163)
    at clojure.lang.RT.loadClassForName(RT.java:2182)
    at clojure.lang.RT.load(RT.java:436)
    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 nltry.core$loading__5340__auto____31.invoke(core.clj:2)
    at nltry.core__init.load(Unknown Source)
    at nltry.core__init.<clinit>(Unknown Source)
    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.classForName(RT.java:2163)
    at clojure.lang.RT.loadClassForName(RT.java:2182)
    at clojure.lang.RT.load(RT.java:436)
    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.lang.Var.invoke(Var.java:379)
    at nltry.core.<clinit>(Unknown Source)
Caused by: java.lang.IllegalArgumentException: No implementation of method: :make-reader of protocol: #'clojure.java.io/IOFactory found for class: nil
    at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:554)
    at clojure.java.io$fn__9115$G__9091__9122.invoke(io.clj:69)
    at clojure.java.io$reader.doInvoke(io.clj:102)
    at clojure.lang.RestFn.invoke(RestFn.java:410)
    at cljs.js_deps$goog_dependencies_STAR_.invoke(js_deps.clj:214)
    at clojure.lang.AFn.applyToHelper(AFn.java:152)
    at clojure.lang.AFn.applyTo(AFn.java:144)
    at clojure.core$apply.invoke(core.clj:630)
    at clojure.core$memoize$fn__5479.doInvoke(core.clj:6082)
    at clojure.lang.RestFn.invoke(RestFn.java:397)
    at cljs.js_deps$js_dependency_index.invoke(js_deps.clj:233)
    at cljs.env$default_compiler_env.invoke(env.clj:45)
    at cljs.env$default_compiler_env.invoke(env.clj:42)
    at lighttable.nrepl.cljs__init.load(Unknown Source)
    at lighttable.nrepl.cljs__init.<clinit>(Unknown Source)
    ... 58 more
@kohyama
Copy link
Author

kohyama commented Sep 18, 2015

It seems to be caused by CLJ-1544.
http://dev.clojure.org/jira/browse/CLJ-1544
So what should I do in this case?

@rundis
Copy link
Contributor

rundis commented Sep 18, 2015

You could try building lein-light-nrepl from source yourself (pending a 0.2.0 release of the clojure plugin)

  • Clone/fork https://github.com/LightTable/Clojure
  • cd lein-light-nrepl
  • lein with-profile production install ; with-profile to ensure clojure-complete doesn't get test scope !
  • change your lein-light dependency to 0.2.0

@kohyama
Copy link
Author

kohyama commented Sep 18, 2015

Great!
It works fine with self-built 0.2.0.
Thank you so much for your comment, rundis.
I use this self-built version until the 0.2.0 release and hope the release will go well.

@kohyama kohyama closed this as completed Sep 18, 2015
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants