> It might be something like this(pasting here):
> 

The problem is the hyphen in the namespace.


I think that causes problems at compile time, rather than runtime, but 
there is a chance you are right, so I will go through and carefully change 
all hyphens to underscores in all namespace declarations. 






W dniu wtorek, 29 stycznia 2013 02:38:47 UTC-5 użytkownik AtKaaZ napisał:
>
> It might be something like this(pasting here):
>   
> The problem is the hyphen in the namespace.
>
> From the *Joy of Clojure*
>
> HYPHENS/UNDERSCORES If you decide to name your namespaces with hyphens, à 
> la my-cool-lib, then the corresponding source file must be named with 
> underscores in place of the hyphens (my_cool_lib.clj).
>
> Here is the underlying explanation: 
> http://stackoverflow.com/q/4451693/32174
>   
> answered Nov 23 '11 at 4:10 
>  <http://stackoverflow.com/users/32174/julien-chastang> 
>  Julien Chastang <http://stackoverflow.com/users/32174/julien-chastang>
>
>
>
> On Tue, Jan 29, 2013 at 8:03 AM, larry google groups 
> <lawrenc...@gmail.com<javascript:>
> > wrote:
>
>>
>> Maybe someone can tell me where I went wrong on this one.
>>
>> I have an app. Written with Clojure 1.4.
>>
>> At first the app was very small, so I put all the code into core.clj.
>> When I got to about 500 or 600 lines of code, core.clj was too big, so
>> I started to break it up. There were some string-to-enlive-node
>> functions that I moved to a file I called
>> transform_strings_and_nodes.clj.
>>
>> The app keeps the most recent 15 minutes worth of session info in
>> memory, then saves it to the database. Eventually, when this is live,
>> tourists will arrive and interact with a kiosk and choose an
>> itinerary. The itinerary is bulky, a lot of HTML strings held in
>> memory. I began to wonder how bulky this might get. I thought I would
>> write a profile function, relying on Timbre 
>> https://github.com/ptaoussanis/timbre.
>>
>> During development, I would have this function run in a thread and
>> call itself every 5 minutes. I decided I would hit the app with a lot
>> of dummy data, and the profile function would do stuff like time how
>> long it took to transform all the HTML strings in memory into Enlive
>> nodes.
>>
>> This was working for awhile. I am not sure what changed, but now I am
>> getting:
>>
>> Exception in thread "Thread-4" java.lang.NoClassDefFoundError:
>> kiosks_clojure/transform_strings_and_nodes
>> $join_all_tourist_itineraries_together$fn__115
>>         at kiosks_clojure.transform_strings_and_nodes
>>
>> $join_all_tourist_itineraries_together.invoke(transform_strings_and_nodes.clj:
>> 84)
>>         at kiosks_clojure.transform_strings_and_nodes
>>
>> $render_html_string_to_enlive_nodes.invoke(transform_strings_and_nodes.clj:
>> 94)
>>         at kiosks_clojure.transform_strings_and_nodes
>>
>> $prepare_render_html_string_to_enlive_nodes.invoke(transform_strings_and_nodes.clj:
>> 101)
>>         at kiosks_clojure.transform_strings_and_nodes
>>
>> $profile_render_html_string_to_enlive_nodes.invoke(transform_strings_and_nodes.clj:
>> 105)
>>         at clojure.lang.AFn.run(AFn.java:24)
>>         at java.lang.Thread.run(Thread.java:722)
>> Caused by: java.lang.ClassNotFoundException:
>> kiosks_clojure.transform_strings_and_nodes
>> $join_all_tourist_itineraries_together$fn__115
>>         at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
>>         at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
>>         at java.security.AccessController.doPrivileged(Native Method)
>>         at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
>>         at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
>>         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:
>> 308)
>>         at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
>>
>>
>> As far as I can read the stack trace, the exception seems to get
>> triggered here:
>>
>> (defn join-all-tourist-itineraries-together [sessions]
>>   (reduce
>>    (fn [vector-of-tourist-itineraries-as-strings next-tourist-session]
>>      (conj vector-of-tourist-itineraries-as-strings (get-in next-
>> tourist-session [:itinerary-as-string])))
>>    []
>>    sessions))
>>
>>
>> Which is called from here:
>>
>> (defn render-html-string-to-enlive-nodes []
>>   "2013-01-24 - I worry about how slow this might get when the memory
>> is full of intineraries. I'm going to run these tests while this in
>> development, to get a sense for what kind of performance we might
>> get."
>>   (let [sessions (:sessions @um/interactions)
>>         accumulated-total-of-all-tourist-itineraries-in-memory-as-
>> strings (st/join (join-all-tourist-itineraries-together sessions))
>>         length-of-string-to-be-rendered (.length (str accumulated-
>> total-of-all-tourist-itineraries-in-memory-as-strings))
>>         itineraries-as-one-string-wrapped-in-div (apply str "<div
>> id='all-itineraries'>" accumulated-total-of-all-tourist-itineraries-in-
>> memory-as-strings "</div>")]
>>     (println (apply str "In render-html-string-to-enlive-nodes, the
>> length of the HTML string: "  length-of-string-to-be-rendered))
>>     (transform-html-string-to-enlive-nodes itineraries-as-one-string-
>> wrapped-in-div (keyword "#all-itineraries"))))
>>
>> (defn prepare-render-html-string-to-enlive-nodes []
>>   (p :string-to-enlive-nodes (render-html-string-to-enlive-nodes)))
>>
>> (defn profile-render-html-string-to-enlive-nodes []
>>   (. java.lang.Thread sleep 300000)
>>   (profile :debug :summary-render-html-strings-to-enlive-nodes
>> (prepare-render-html-string-to-enlive-nodes)))
>>
>>
>>
>> I looked for info about this error and I found this:
>>
>>
>> http://javarevisited.blogspot.com/2011/06/noclassdeffounderror-exception-in.html
>>
>> which says:
>>
>> "NoClassDefFoundError in Java comes when Java Virtual Machine is not
>> able to find a particular class at runtime which was available during
>> compile time. "
>>
>>
>> I am very ignorant of the JVM and I do not understand how this can
>> happen. Right now, while testing this app, I am compiling it locally
>> on my Macintosh and I am running it locally on my Macintosh. How can a
>> class be present at compile time but not at runtime?
>>
>>
>>
>>
>> --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clo...@googlegroups.com<javascript:>
>> Note that posts from new members are moderated - please be patient with 
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+u...@googlegroups.com <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 clojure+u...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>
> -- 
> Please correct me if I'm wrong or incomplete,
> even if you think I'll subconsciously hate it.
>
> 

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
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 clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to