The code can be found here: https://github.com/teamwall/teamwall/blob/develop/src/server/teamwall/api.clj#L85
Here I used to do something like `io/as-file path-to-my-file` but it failed because it’s not resolved as a file anymore when it’s jarred Good luck, Ben On Tue, Jan 27, 2015 at 2:00 PM, Dan Harbin <[email protected]> wrote: > Ben, I would appreciate it if you'd show me the sample code. Thanks for > your help, everyone! > On Tuesday, January 27, 2015 at 6:28:59 AM UTC-6, Benjamin VanRyseghem > wrote: >> >> I face something similar. >> >> The issue was that inside a jar file, a resource is not a java.io.File >> anymore. >> >> I could turn around using an InputStream (I was in the case I wanted to >> serve a resource via http-kit) >> >> If you want more info, I can point you to the code where I use it >> >> Hope it helps, >> Ben >> >> >> >> >> On Tue, Jan 27, 2015 at 5:04 AM, Dan Harbin <[email protected] >> <javascript:>> wrote: >> >>> I've created a sample project at Github[1] to demonstrate the problem I'm >>> facing with accessing a resource file when using an uberjar. Could someone >>> point out what I'm doing wrong here? Thanks! >>> >>> >>> [1]: https://github.com/RasterBurn/halp >>> >>> >>> ### Given this code: ############### >>> >>> ```clojure >>> (ns halp.core >>> (:require [clojure.java.io :as io]) >>> (:gen-class)) >>> >>> (defn -main >>> "I don't do a whole lot ... yet." >>> [& args] >>> (-> "hi.txt" >>> io/resource >>> io/file >>> (io/copy *out*))) >>> ``` >>> >>> ### It runs well under leiningen ####### >>> >>> ``` >>> ➜ halp lein run >>> . >>> ─────────▄──────────────▄ >>> ────────▌▒█───────────▄▀▒▌ >>> ────────▌▒▒▀▄───────▄▀▒▒▒▐ >>> ───────▐▄▀▒▒▀▀▀▀▄▄▄▀▒▒▒▒▒▐ >>> ─────▄▄▀▒▒▒▒▒▒▒▒▒▒▒█▒▒▄█▒▐ >>> ───▄▀▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▀██▀▒▌ >>> ──▐▒▒▒▄▄▄▒▒▒▒▒▒▒▒▒▒▒▒▒▀▄▒▒▌ >>> ──▌▒▒▐▄█▀▒▒▒▒▄▀█▄▒▒▒▒▒▒▒█▒▐ >>> ─▐▒▒▒▒▒▒▒▒▒▒▒▌██▀▒▒▒▒▒▒▒▒▀▄▌ >>> ─▌▒▀▄██▄▒▒▒▒▒▒▒▒▒▒▒░░░░▒▒▒▒▌ >>> ─▌▀▐▄█▄█▌▄▒▀▒▒▒▒▒▒░░░░░░▒▒▒▐ >>> ▐▒▀▐▀▐▀▒▒▄▄▒▄▒▒▒▒▒░░░░░░▒▒▒▒▌ >>> ▐▒▒▒▀▀▄▄▒▒▒▄▒▒▒▒▒▒░░░░░░▒▒▒▐ >>> ─▌▒▒▒▒▒▒▀▀▀▒▒▒▒▒▒▒▒░░░░▒▒▒▒▌ >>> ─▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▐ >>> ──▀▄▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▄▒▒▒▒▌ >>> ────▀▄▒▒▒▒▒▒▒▒▒▒▄▄▄▀▒▒▒▒▄▀ >>> ───▐▀▒▀▄▄▄▄▄▄▀▀▀▒▒▒▒▒▄▄▀ >>> ──▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▀▀ >>> ``` >>> >>> ### But not so much as an uberjar ######### >>> >>> ``` >>> ➜ halp java -jar target/uberjar/halp-0.1.0-SNAPSHOT-standalone.jar >>> Exception in thread "main" java.lang.IllegalArgumentException: Not a file: >>> jar:file:/home/vagrant/code/halp/target/uberjar/halp-0.1.0-SNAPSHOT-standalone.jar!/hi.txt >>> at clojure.java.io$fn__8588.invoke(io.clj:63) >>> at clojure.java.io$fn__8572$G__8556__8577.invoke(io.clj:35) >>> at clojure.java.io$file.invoke(io.clj:414) >>> at halp.core$_main.doInvoke(core.clj:11) >>> at clojure.lang.RestFn.invoke(RestFn.java:397) >>> at clojure.lang.AFn.applyToHelper(AFn.java:152) >>> at clojure.lang.RestFn.applyTo(RestFn.java:132) >>> at halp.core.main(Unknown Source) >>> ``` >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To post to this group, send email to [email protected] >>> <javascript:> >>> Note that posts from new members are moderated - please be patient with >>> your first post. >>> To unsubscribe from this group, send email to >>> [email protected] <javascript:> >>> For more options, visit this group at >>> http://groups.google.com/group/clojure?hl=en >>> --- >>> You received this message because you are subscribed to the Google Groups >>> "Clojure" group. >>> To unsubscribe from this group and stop receiving emails from it, send an >>> email to [email protected] <javascript:>. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to [email protected] > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
