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.

Reply via email to