In main.clj, it looks like you aren't keeping a reference to the started 
app. So when you call stop, you are actually stopping the version of the 
system which doesn't have the jetty server set.

Try changing this:
(defn -main [& args]
  (component/start app)
  (component/stop app))


to this:
(defn -main [& args]
  (-> app
      (component/start)
      (component/stop)))

Now, that will immediately start then stop your app, which isn't useful in 
the long run. Here's how I've managed the system in one of my apps:
https://github.com/sashton/event-loupe/blob/master/src/clj/event_loupe/core.clj

And here is how start/stop/restart it in the repl:
https://github.com/sashton/event-loupe/blob/master/repl/user.clj




On Tuesday, February 10, 2015 at 8:35:44 AM UTC-5, Gilberto Garcia wrote:
>
> I get the same error because the key :jetty-server = nil
> so, (:jetty-server this) will return nil
> what turns into (.stop nil)
>
> note that if I print 'this' after assoc'ing :jetty-server in the start 
> lifecycle I see the jetty server associated with the key :jetty-server
>
> for some reason I'm loosing the reference for the jetty server between 
> start and stop phases.
>
> On Tue, Feb 10, 2015 at 10:35 AM, Chris Ford <christop...@gmail.com 
> <javascript:>> wrote:
>
>> What happens if you try:
>>
>> (.stop (:jetty-server this))
>>
>> instead of:
>>
>> (.stop jetty-server)
>>
>> I'm not at a repl right now, but maybe your stop method is closing over 
>> the value of jetty-server that's passed in when the record was constructed?
>>
>> On 10 February 2015 at 22:58, Gilberto Garcia <giba...@gmail.com 
>> <javascript:>> wrote:
>>
>>> Here it goes https://gist.github.com/ggarciajr/e5f1c0f1072c63705ac4
>>>
>>> Note that the :jetty-server is nil and it should hold the jetty server 
>>> so it can be stopped in the stop phase.
>>>
>>> #toro_tokens_rest.components.ring.Ring{:port 3000, :database 
>>> #toro_tokens_rest.components.database.Database{:path /tmp/dev-leveldb}, 
>>> :jetty-server nil}
>>>
>>> So, I bet I'm doing something wrong.
>>>
>>>
>>> On Tue, Feb 10, 2015 at 9:45 AM, Chris Ford <christop...@gmail.com 
>>> <javascript:>> wrote:
>>>
>>>> Perhaps it would help if you posted a gist of the stacktrace you 
>>>> encounter?
>>>>
>>>> On 10 February 2015 at 20:29, Gilberto Garcia <giba...@gmail.com 
>>>> <javascript:>> wrote:
>>>>
>>>>> Hi All,
>>>>>
>>>>> I'm new to clojure and I'm trying to create a simple rest api to 
>>>>> create and manages to token.
>>>>> I'm trying to use Stuart's component library but I'm having problems 
>>>>> when trying to stop a component because one of the component's map 
>>>>> attribute is nil, so, when I try to stop the jetty server I get a NPE.
>>>>>
>>>>> I bet that I'm doing something wrong and I'm failing to find what is 
>>>>> wrong due to my lack of clojure knowledge/experience.
>>>>>
>>>>> Any help is appreciated.
>>>>>
>>>>> Repo: 
>>>>> https://github.com/ggarciajr/toro-tokens-rest/tree/adding-functionality
>>>>> Branch: adding-functionality
>>>>>
>>>>> Thanks in advance
>>>>>
>>>>> -- 
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Clojure" group.
>>>>> To post to this group, send email to clo...@googlegroups.com 
>>>>> <javascript:>
>>>>> Note that posts from new members are moderated - please be patient 
>>>>> with your first post.
>>>>> To unsubscribe from this group, send email to
>>>>> clojure+u...@googlegroups.com <javascript:>
>>>>> 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+u...@googlegroups.com <javascript:>.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>  -- 
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Clojure" group.
>>>> To post to this group, send email to clo...@googlegroups.com 
>>>> <javascript:>
>>>> Note that posts from new members are moderated - please be patient with 
>>>> your first post.
>>>> To unsubscribe from this group, send email to
>>>> clojure+u...@googlegroups.com <javascript:>
>>>> 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+u...@googlegroups.com <javascript:>.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>  -- 
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clo...@googlegroups.com 
>>> <javascript:>
>>> Note that posts from new members are moderated - please be patient with 
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+u...@googlegroups.com <javascript:>
>>> 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+u...@googlegroups.com <javascript:>.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  -- 
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clo...@googlegroups.com 
>> <javascript:>
>> Note that posts from new members are moderated - please be patient with 
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+u...@googlegroups.com <javascript:>
>> 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+u...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

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