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.