के लिए प्रारंभिक हुक क्लाउडफाउंड्री में एक WAR फ़ाइल के रूप में चलाने के लिए मैं क्लोजर नोयर वेब एप्लिकेशन बना रहा हूं।क्लोजर नोयर वायर/सर्वलेट (क्लाउडफाउंड्री)
मेरी project.clj में मेरे पास है:
:ring {:handler appname.server/handler}
server.clj में मैं एक हैंडलर नोयर का उपयोग कर बनाने के लिए:
(def handler (noir.server/gen-handler {:ns 'appname}))
मैं एक lein अंगूठी प्लगइन का उपयोग कर युद्ध फ़ाइल का निर्माण:
lein ring uberwar
फिर क्लाउडफाउंड्री को दबाकर:
vmc push appname
अनुरोध हैंडलर ठीक काम करता है और मैं एप्लिकेशन के यूआरएल को ठीक से ब्राउज़ कर सकता हूं।
तो सवाल यह है कि आवेदन शुरू होने पर प्रारंभ करने का सही तरीका क्या है?
मैं server.clj में निम्न कर सकते हैं:
(when (System/getenv "VCAP_APPLICATION")
(init-func))
लेकिन वहाँ उस के साथ कुछ समस्याएं हैं। सबसे पहले, ऐसा लगता है कि गलत समय पर प्रारंभ करना (जब ऐप शुरू होने के बजाय कोड पढ़ा/eval'd किया जाता है)। दूसरा, रक्षक क्लाउडफाउंड्री के लिए विशिष्ट है और मुझे यकीन है कि ऐसा करने के लिए एक उचित सामान्य युद्ध तरीका है।
मुझे लगता है कि यह संदर्भ का उद्देश्य है ServletContextListener पर प्रारंभिक विधि लेकिन मैं इसे नोयर/अंगूठी के साथ कैसे लगा सकता हूं?