I forgot to post before, here is the actual error:

BindException Address already in use  sun.nio.ch.Net.bind0 (Net.java:-2)

Also, adding a (Thread/sleep 1000) seems to increase the success rate, but
would be nice to be able to really wait on Jetty to shutdown instead of
using arbitrary sleep.

Thanks.

---
Wilker LĂșcio
http://about.me/wilkerlucio/bio
Woboinc Consultant
+55 81 82556600

On Sat, Sep 13, 2014 at 8:20 PM, Wilker <wilkerlu...@gmail.com> wrote:

> Hi,
>
> I'm trying to apply the ideas from the component library:
> https://github.com/stuartsierra/component
>
> My problems is being about stop/start the Jetty server, for that purpose I
> created this component:
>
>   (defrecord WebServer [app port join? jetty log]
>     component/Lifecycle
>     (start [c]
>       (log "Starting jetty server...")
>       (let [jetty (jetty/run-jetty (:handler app) {:port port :join?
> join?})]
>         (log "Server started at port" port)
>         (assoc c :jetty jetty)))
>
>     (stop [c]
>       (when (:jetty c)
>         (log "Stopping jetty...")
>         (.stop (:jetty c))
>         (log "Server stopped."))
>
>       (assoc c :jetty nil)))
>
>   (defn webserver-component
>     ([port] (webserver-component port true))
>     ([port join?]
>      (map->WebServer {:port port :join? join?})))
>
> It works, sometimes, but often I get this when I try to reset:
>
>   Error starting #<ExceptionInfo clojure.lang.ExceptionInfo: Error in
> component :server in system com.stuartsierra.component.SystemMap calling
> #'com.stuartsierra.component/start {:reason
> :com.stuartsierra.component/component-function-threw-exception, :function
> #'com.stuartsierra.component/start, :system-key :server, :component
> #cadegp.components.web_server.WebServer{:app
> #cadegp.components.web_app.CadegpApp{:conn
> #cadegp.components.database.Database{:uri
> datomic:free://localhost:4334/cadegp, :connection #<Connection {:db-id
> cadegp-48d87324-7849-4255-b798-865b02ee9d9d, :index-rev 0, :basis-t 1176,
> :next-t 1177, :unsent-updates-queue 0, :pending-txes 0}>}, :handler
> #<reload$wrap_reload$fn__1728
> ring.middleware.reload$wrap_reload$fn__1728@6608b223>, :handler-ext
> #<user$wrap_dev_handler user$wrap_dev_handler@7e174cba>}, :port 8000,
> :join? false, :jetty nil, :log #<core$println clojure.core$println@7a2c3090>},
> :system #<SystemMap>}>
>
> Seems that it tries to start the server before it have time to shut it
> down.
>
> Any of you had a similar issue or know how to work around that?
>
> Thanks.
>
> ---
> Wilker LĂșcio
> http://about.me/wilkerlucio/bio
> Woboinc Consultant
> +55 81 82556600
>

-- 
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