I am trying to start my clojure application on my heroku dyno but I keep getting and error in my stuartsierra.component/start.
Below is my core file containing my main function. (defrecord Listener [listener] component/Lifecycle (start [component] (assoc component :listener (yada/listener ["/" [(view/view-route) routes/route-handler ["public/" (new-directory-resource (io/file "target/cljsbuild/public") {})] [true (as-resource nil)]]] (or (env :port) (get (read-config "resources/config.edn" {:profile :dev}) :webserver)) ))) (stop [component] (when-let [close (-> component :listener :close)] (close)) (assoc component :listener nil))) (defn new-system [] (component/system-map :listener (map->Listener {}) )) (def system nil) (defn init [] (alter-var-root #'system (constantly (new-system)))) (defn start [] (alter-var-root #'system component/start)) (defn stop [] (alter-var-root #'system (fn [s] (when s (component/stop s))))) (defn go [] (init) (start)) (defn reset [] (stop) (refresh :after 'web.core/go)) (defn -main [& [port]] (component/start (new-system)) (println "System Started") @(promise)) This is my core file with all my stuartsierra.component code. This all works perfectly when I run it locally on my laptop doing lein repl and then (go) and also when I just do lein run. So I am confused as to why it doesn't work when I push this to the heroku dyno. The error I get is Exception in thread "main" clojure.lang.ExceptionInfo: Error in component :listener 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 :listener, :component #web.core.Listener{:listener nil}, :system #<SystemMap>}, compiling:(/tmp/form-init9049917434081554913.clj:1:73) This is telling me that my :listener is nil in the system-map. When I check locally (doing lein repl (go)) in (keys system) is (:listener) which is good so that means that the listener is starting and is in the system. When I do (-> system :listener) I get #web.core.Listener{:listener {:port 3300, :close #object[yada.aleph$listener$fn__21671 0xa5d4865 "yada.aleph$listener$fn__21671@a5d4865"], :server #object[aleph.netty$start_server$reify__13574 0x3cc9a232 "aleph.netty$start_server$reify__13574@3cc9a232"]}} which is perfect as the port has loaded up (3300) and the server has started. This makes it all the more confusing as to why the :listener is nil in my heroku app Any help would be much appreciated. Thanks -- 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.