On Saturday, August 9, 2014 3:04:03 PM UTC-7, Sven Richter wrote: > > Hi, > > I setup a small project you can find here: > https://github.com/sveri/component_test > You can run it with lein repl and then calling (go). > 2. In scheduler.clj I defined a protocol (additionally to the lifecycle > protocol) and a record implementing that protocol. I create a new instance > of that record and pass it down to the handler and there to the routes. > Now, when I open a webpage and go to http://localhost:3000/sched > everything works fine. > Next I edit the add-job function in scheduler.cljs to print something > different like this: > (add-job [this] > (println "new sys out")) > Just a small change is enough. If you go to the webpage again and try to > reload it an exception will be thrown: > Sat Aug 09 23:52:28 CEST 2014 [worker-3] ERROR - GET /sched > java.lang.IllegalArgumentException: No implementation of method: :add-job > of protocol: #'component-test.scheduler/ISched found for class: > component_test.schedul > er.Sched > at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:544) > at > component_test.scheduler$eval6553$fn__6554$G__6544__6559.invoke(scheduler.clj:6) > at component_test.routes$sched_in.invoke(routes.clj:8) > at component_test.routes$home_routes$fn__3312.invoke(routes.clj:19) > at compojure.core$make_route$fn__2331.invoke(core.clj:99) > at compojure.core$if_route$fn__2315.invoke(core.clj:45) > ... >
It just looks like the code didn't get relaoded. > > I dont really understand why that happens and any hints regarding what I > am doing wrong would be great. And this leads to my last question. > > 3. After having an exception I will usually try to reset the system with: > (reset), but in this case (and many different other cases) I will just get > another error: > component-test.user=> (reset) > :reloading (component-test.scheduler component-test.routes > component-test.server component-test.handler component-test.core > component-test.user component-test.c > ore-test) > ;; Starting HTTP-Kit server on port 3000 > > BindException Address already in use: bind sun.nio.ch.Net.bind0 > (Net.java:-2) > The server isn't being shut down by the reset or anything else as far as I can see. The log message ";; Shutting down HTTP-Kit server" doesn't appear anywhere in the output you supplied so I'm not sure the server's stop lifecycle method is being called and in any case it doesn't appear to actually shut down the server - it just calls (server)... whatever that does... I'm not sure. Good luck. Alan -- 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/d/optout.