2012-06-16 23 views
5

हमें उत्पादन में एक मूंछ प्ले त्रुटि मिल रही है (अमेज़ॅन लिनक्स ईसी 2 एएमआई) लेकिन विकास में नहीं (एमएसी) और हमने jvm को अपग्रेड करने और इसके बजाय टोमकैट तैनाती मॉडल से बदलने का प्रयास किया है जितना संभव हो सके हमारे विकास वातावरण से मेल खाते हैं लेकिन कुछ भी काम नहीं कर रहा है। कृपया किसी भी मदद की सराहना की जाएगी। हमारे पास जावा और जावास्क्रिप्ट में मूंछ का उपयोग करके बहुत सारे साझा कोड हैं और अगर हम जावा पक्ष पर मूंछें तोड़ना चाहते हैं तो यह सब कुछ फिर से लिखना एक बड़ा सौदा होगा।जावा प्ले मूंछ एनपीई त्रुटि

20: 48: 52,403 त्रुटि ~

@6al2dd0po 
Internal Server Error (500) for request GET /mystuff/people 

Execution exception (In {module:mustache-0.2}/app/play/modules/mustache/MustacheTags.java around line 32) 
NullPointerException occured : null 

play.exceptions.JavaExecutionException 
    at play.templates.BaseTemplate.throwException(BaseTemplate.java:90) 
    at play.templates.GroovyTemplate.internalRender(GroovyTemplate.java:257) 
    at play.templates.Template.render(Template.java:26) 
    at play.templates.GroovyTemplate.render(GroovyTemplate.java:187) 
    at play.mvc.results.RenderTemplate.<init>(RenderTemplate.java:24) 
    at play.mvc.Controller.renderTemplate(Controller.java:660) 
    at play.mvc.Controller.renderTemplate(Controller.java:640) 
    at play.mvc.Controller.render(Controller.java:695) 
    at controllers.MyStuff.people(MyStuff.java:183) 
    at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:548) 
    at play.mvc.ActionInvoker.invoke(ActionInvoker.java:502) 
    at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:478) 
    at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:473) 
    at play.mvc.ActionInvoker.invoke(ActionInvoker.java:161) 
    at Invocation.HTTP Request(Play!) 
Caused by: java.lang.NullPointerException 
    at play.modules.mustache.MustacheTags._template(MustacheTags.java:32) 
    at play.modules.mustache.MustacheTags$_template.call(Unknown Source) 
    at /app/views/User/people.html.(line:22) 
    at play.templates.GroovyTemplate.internalRender(GroovyTemplate.java:232) 
    ... 13 more 
+0

क्या आप संबंधित कोड पोस्ट कर सकते हैं? मेरा अनुमान है कि आपका टेम्पलेट लोड नहीं हो रहा है। –

उत्तर

1

लगता है कि समस्या थ्रेडलोकल के साथ है। प्रोड में मेरे लॉग के अनुसार, सत्र मुख्य धागे के साथ शुरू किया जाता है।

 [2012-06-30 18:35:38,102] INFO 10097[**main**] - Mustache module initialized 

हालांकि, MustacheTag अनुरोध के दौरान इस तरह विभिन्न धागे से उपयोग करने की कोशिश करता है।

 [2012-06-30 17:48:44,669] INFO 66048[**play-thread-1**] - [{module:mustache-0.2}/app/play/modules/mustache/MustacheTags.java:46] _meta() :: MustachePlugin.session():null 

तो मैं this.Changed लाइन की तरह MustachePlugin के कार्यान्वयन पर टिप्पणी की बदल दिया है:

//private static ThreadLocal<MustacheSession> session_ = new ThreadLocal<MustacheSession>(); 
    private static MustacheSession _session = null; 
    public static MustacheSession session(){ 
    //return session_.get(); 
    return _session; 
    } 
    public void onConfigurationRead(){ 
    // some code 
    _session = new MustacheSession(compiler, root); 
    // some code 
    } 

और यह prod मोड में अब ठीक काम कर रहा है! मुझे कोई कारण नहीं दिखता कि यह थ्रेडलोकल में पहली जगह क्यों होना चाहिए क्योंकि सत्र स्टार्टअप पर शुरू होता है!

+0

thx यह आशाजनक लग रहा है। मैं इसे कोशिश करने के लिए MustachePlugin.java फ़ाइल संपादित कर रहा हूं लेकिन जावा फ़ाइलों में मेरे परिवर्तन प्रभावी नहीं लग रहे हैं। मैं अपने परिवर्तनों के साथ फिर से मॉड्यूल कैसे संकलित करूं ताकि फिर से शुरू करने के बाद उन्हें चलाएं? – zanedev

+0

बस अपने परिवर्तनों का परीक्षण करने के लिए मॉड्यूल/मूंछ-0.2/lib/play-mustache.jar में क्लास फ़ाइलों को अपडेट करें! – CodeTripper

+0

ठीक है मैंने मॉड्यूल के लिए चींटी निर्माण चलाया और यह lib को अपडेट किया। अच्छा कोडट्रिपर दिखता है! मैं मूंछ प्लगइन जिथब में भी इस मुद्दे पर परिणाम पोस्ट करूंगा। – zanedev

0

आपकी समस्या को पुनः करने के लिए तो मैं कुछ संकेत यहाँ दे देंगे मुश्किल है। आपने एनवी मुद्दे होने के मुद्दे को खत्म करने की कोशिश की है। कई बार उत्पादन जारी करने के लिए कारण आमतौर पर वास्तविक डेटा और परीक्षण डाटा में अंतर है: तो अन्य संभावित मुद्दों

  1. डेटा मुद्दा हो सकता है। जांचें कि क्या इसका डेटा मुद्दा एनपीई का सामना कर रहा है।

  2. कोड समस्या: क्या समस्या है people.html.(line:22) पर कुछ समस्या है। सबसे पहले समस्या को हल करने के लिए यह जांचने के लिए इसे हटाने/बदलने का प्रयास करें। या आप mustache (सटीक संस्करण जिसका उपयोग कर रहे हैं) का स्रोत कोड प्राप्त कर सकते हैं और देख सकते हैं कि यह किस वस्तु को बनाने की कोशिश कर रहा है और इसकी असफलता कहां है।

  3. विभिन्न वातावरण के लिए गुण फ़ाइल: क्या आपके पास प्रत्येक env के लिए अलग-अलग proprties फ़ाइल है? यदि हां, तो क्या आप प्रोड एनवी के लिए किसी भी संपत्ति पर चूक गए हैं?

0

आप इसका मतलब यह है कि आप शायद मूंछें पुस्तकालय की एक विधि कॉल करके और शून्य मान से गुजर रहे हैं कि लाइन 32.

पर MustacheTags.java पर एक NullPointerException है। इस विधि में आपके द्वारा स्थानांतरित सभी पैरामीटर लॉगिंग करने का प्रयास करें (MyStuff.java लाइन 183?)।

आप मूंछटैग here के स्रोत कोड को देख सकते हैं, यह आपको यह समझने में सहायता कर सकता है कि आप कौन से मूल्यों को पारित कर रहे हैं और क्या पारित किया जाना चाहिए।