2010-10-14 8 views
7

सबसे पहले ग्रहण:ग्रहण गूगल -App -Engine "बेहतर बनाएँ नहीं होगा"

इस त्रुटि से छुटकारा पाने के नहीं किया जा सकता ... गूगल पर हर सुझाव दिया गया समाधान की कोशिश की है ..

लगातार वर्ग "वर्ग कॉम .blahb.blahblah.master.UserToken बढ़ाया गया है प्रतीत नहीं होता है। आप बढ़ाने को फिर से चलाएं और उत्पादन में त्रुटियों की जांच कर सकते हैं। " डेटाबेस में कोई टेबल नहीं है, लेकिन ऑपरेशन की आवश्यकता है। कृपया इस कक्षा के लिए मेटाडेटा के विनिर्देश की जांच करें।

List of 500 lines of exceptions... 
*Caused by: 
javax.jdo.JDOUserException: Persistent class "Class com.blahb.blahblah.master.UserToken does not seem to have been enhanced. You may want to rerun the enhancer and check for errors in the output." has no table in the database, but the operation requires it. Please check the specification of the MetaData for this class. 
    at org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:375) 
    at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:230) 
    at com.gulfnet.gulfstar.master.Master.getUserToken(Master.java:645) 
    at org.apache.jsp.top_jsp._jspService(top_jsp.java:68) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) 
    at com.google.appengine.tools.development.PrivilegedJspServlet.access$101(PrivilegedJspServlet* 

मेरे सह कार्यकर्ता उसकी खिड़कियों पीसी पर इस एक ही परियोजना है और यह ठीक चलाता है ...

मैं तीन अलग अलग पीसी लिनक्स, मैक, खिड़कियां, 3 अलग ग्रहण संस्करणों, 20 की कोशिश की है आयात करने के विभिन्न तरीके, नई परियोजना, ect .... बनाने

हाँ, .classpath सभी जार फ़ाइलों का सही स्थान को प्रतिबिंबित करने के लिए सही था। मैंने कक्षाओं/बिल्डपैथ (विंडो -> pref -> google -> orm) में किसी भी Google ब्लॉग पर सुझाए गए प्रत्येक एकल वर्ग, जावा, जार को जोड़ने का प्रयास किया है ...

और कहां है यह लानत "Enhancer कंसोल" ग्रहण में माना जाता है ...? मैं सभी Google- ऐप-इंजन प्लगइन के साथ नवीनतम ग्रहण चला रहा हूं ..

कोई विचार ...? किसी को..?

धन्यवाद!

उत्तर

1

हम [परियोजना> गुण> Google> App इंजन ORM>] संपादित पेज src/ दूर करने के लिए और केवल हमारे वर्गों (src/com/VO/ जावा *, src के एक सबसेट को बढ़ाने ?/com/वापस/ और रेस/) में बताई गई विधि: datanucleus enhancer & javaw: "the parameter is incorrect"

हमने Google की नकल की | एक छोटा पथ के लिए App इंजन के रूप में नीचे की व्याख्या हमारे लिए काम किया: http://code.google.com/p/google-web-toolkit/issues/detail?id=4395#c15

0

मैं था टी वह एक ही गलती और मेरे मामले में समाधान सिर्फ वर्ग एक समान नहीं कर रहा था इस लाइन टिप्पणी करके:

@PersistenceCapable(identityType = IdentityType.APPLICATION) 

फिर अपने आवेदन चलाने के लिए और दृढ़ता के बारे में त्रुटि है, यह बंद करो, टिप्पणी हटाएं पिछली लाइन और फिर अनुप्रयोग चलाने के।

0

यह समस्या मेरे लिए हल किया गया था इसलिए की तरह एक प्राथमिक कुंजी जोड़ने, द्वारा:

@PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long id;

1

ठीक है, इस परियोजना पर क्लिक करें, फिर गुण> बिल्डर्स। वहाँ की तरह एक बिंदु "गुम बिल्डर (org.datanucleus.ide.eclipse.enhancerbuilder)" है?

आप एक नया वेब अनुप्रयोग परियोजना, सुनिश्चित करें कि "गूगल वेब टूलकिट का उपयोग करें" और "गूगल एप इंजन का उपयोग करें" जाँच कर रहे हैं, और उसके बाद गुण> बिल्डर्स में फिर से देखो, यह तो कहना है "बढ़ाने" बनाने बनाते हैं "गायब निर्माता" के बजाय वहाँ?

यदि हां, तो सुनिश्चित करने के लिए एक समाधान स्क्रैच से एक नई परियोजना बनाना है और फिर मैन्युअल रूप से पुराने प्रोजेक्ट से सामग्री को नए में स्थानांतरित करना है। बस पुरानी परियोजना को किसी अन्य ग्रहण में आयात करना काम नहीं करता है, विस्तारक अभी भी वहां नहीं होगा।

3

समस्या यह है कि डेटा न्यूक्लियस के लिए एन्हांसर परियोजना के लिए बिल्डर्स की सूची से हटा दिया जाता है। मेरे लिए सभी परियोजना स्वच्छ, पुनर्निर्मित, आदि मदद नहीं की। आपको क्या करने की जरूरत के लिए है (1) नया नमूना GAE परियोजना बनाएँ, प्लेन टेक्स्ट एडिटर में है कि इस परियोजना के ".project" फ़ाइल को खोलने, वहाँ से पाठ की प्रतिलिपि:

<buildCommand> 
    <name>com.google.appengine.eclipse.core.enhancerbuilder</name> 
    <arguments></arguments> 
</buildCommand> 

अब नीचे करने के लिए इस कॉपी बिल्डर्स की सूची में अपनी खुद की। प्रोजेक्ट फ़ाइल। अब डेटा न्यूक्लियस ठीक काम करना चाहिए। मुझे नहीं पता कि यह कभी-कभी क्यों गायब हो जाता है।

1

एपेंगेन जावा एसडीके के नवीनतम संस्करण को अपडेट करने से यह मेरे लिए हल हो गया।

1

एसडीके संस्करण बदलना मेरे लिए काम करता है।

दिलचस्प बात यह है कि मैं पहले से ही नवीनतम संस्करण का उपयोग कर रहा था। पिछले संस्करण को वापस करने का एकमात्र तरीका था जिसे मैं 'एन्हांसमेंट' चरण को ट्रिगर कर सकता था। यह एक ग्रेडल बिल्ड स्क्रिप्ट के साथ था।