2013-06-06 3 views
8

पिछली दोपहर मैंने एक प्रोजेक्ट बनाया और मोबाइल बैकएंड शुरू किया। मैंने क्लाइंट कोड संपादित किया और कुछ डेटा सम्मिलन सफलतापूर्वक किया।एंड्रॉइड मोबाइल बैकएंड स्टार्टर 404 के साथ असफल रहा ... कुछ बार

कुछ समय (घंटे) के बाद, मैं cliend कोड फिर बदल गया है और प्रविष्टि त्रुटि के साथ विफल:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 404 Not Found 

जैसा कि मैंने कोड में कोई महत्वपूर्ण परिवर्तन किया था नहीं था कि मैं निष्कर्ष निकाला है कि त्रुटि थी ऐप इंजन की ओर से मैंने परियोजना को फिर से तैनात किया और समस्या को हल किया। सम्मिलन फिर से आया।

आज सुबह मैं 404 त्रुटि के साथ वापस आ गया था। इस बार पुनर्वितरण काम नहीं किया था।

त्रुटि लॉग मैं एप्लिकेशन इंजन में मिलता है:

Uncaught exception from servlet 
javax.servlet.UnavailableException: com.google.api.server.spi.config.ApiConfigException: <Entity [GoogleCloudEndpointConfiguration("EndpointV1")]: 
    clientIds = null 
    audiences = null 
> 
.audiences was not of type String or List<String>. 
    at org.mortbay.jetty.servlet.ServletHolder.makeUnavailable(ServletHolder.java:415) 
    at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:451) 
    at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) 
    at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:57) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) 
    at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146) 
    at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:439) 
    at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:480) 
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:487) 
    at com.google.tracing.TraceContext.runInContext(TraceContext.java:774) 
    at com.google.tracing.TraceContext$DoInTraceContext.runInContext(TraceContext.java:751) 
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:342) 
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:334) 
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:484) 
    at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251) 
    at java.lang.Thread.run(Thread.java:722) 

किसी भी विचार क्या हो रहा है और मैं इसे हल करने के लिए क्या कर सकते हैं?

+0

है, तो मैं गेस्टबुक गतिविधि नमूना के साथ एक ही सम्मिलित करने में सक्षम नहीं हूं। त्रुटि: इस त्रुटि के साथ एक टोस्ट मेरे एंड्रॉइड ऐप में दिखाई देता है: com.google.api.client.googleapis.json.GoogleJsonResponseException: 404 नहीं मिला। (मैं एंड्रॉइड स्टूडियो का उपयोग कर रहा हूं) – Moberg

उत्तर

8

मैं पूरी तरह से समझ नहीं पा रहा हूं कि क्या हो रहा है, लेकिन मुझे क्लाइंट पक्ष पर 404 त्रुटियों से छुटकारा पाने का एक तरीका मिला, जो ऐप इंजन पक्ष का जवाब नहीं दे रहा है। ऐप इंजन लॉग में रिपोर्ट की गई त्रुटियां ऐप के लिए ऑडियंस और क्लाइंट आईडी के बारे में बात कर रही हैं। वे मान हैं जिन्हें आपने "क्लाइंट आईडी द्वारा सुरक्षित" के लिए प्रमाणीकरण कॉन्फ़िगर करते समय सेट किया था।

Mobile Backend Settings page

मैंने पाया है कि अगर मैं वहाँ में कुछ प्लेसहोल्डर स्ट्रिंग मूल्यों में डाल दिया, बचाया, और फिर "(केवल विकास संबंधी उपयोग के लिए) खुला" और फिर से बचाया, एप्लिकेशन इंजन अब होता में वापस चला गया कॉन्फ़िगर त्रुटियां और क्लाइंट एंड्रॉइड ऐप की प्रतिक्रिया होगी।

फिलहाल मैं उस स्थान पर हूं जहां गेस्टबुक डेटा में प्रविष्टियां की जाती हैं। लेकिन यह निश्चित रूप से मुझे फिर से शुरू कर दिया। मैं उम्मीद कर रहा हूं कि अगर मैं पूरी तरह से प्रमाणीकरण स्थापित करता हूं कि समस्या वापस नहीं आ जाएगी।

+1

मेट, मैं लगभग आँसू में तोड़ रहा हूं। यह समस्या मुझे हफ्तों तक पागल कर रही थी और मुझे पता है कि मैं उस समाधान का कभी अनुमान नहीं लगाऊंगा। यह काम करता है ... मैं सिर्फ आपको एक बियर खरीदना चाहता हूं और आपको गले लगाना चाहता हूं: ') (गंभीरता से, आपने मेरा दिन बनाया) – Asincrono

+0

खुशी हुई इससे मदद मिली। अंत में मुझे गीक सेरेन्डिपिटी काम करने के लिए पूरा Google आईओ डेमो मिला, जहां मैं समस्या में भाग गया था। दूसरों के लिए एक अच्छा उदाहरण तलाशने के लिए, ब्रैड अब्राम के ब्लॉग पोस्ट की जांच करें: http://bradabrams.com/2013/05/google-io-2013- सत्र-overview-from-nothing-to-nirvana-in-minutes-cloud -बैकेंड-फॉर-एंड-एंड्रॉइड-एप्लिकेशन-बिल्डिंग-गीक-सेरेन्डिपिटी/ –

+0

# बिल लाती क्या आपके पास एंड्रॉइड स्टूडियो प्रोजेक्ट है जिसमें आप गिटहब में पोस्ट कर सकते हैं, क्योंकि यह मुझे पागल कर रहा है ... –

1

मुझे एक ही त्रुटि मिल रही थी, क्लाउड कंसोल पर बैकएंड ऐप को फिर से तैनात करने के बाद त्रुटि चली गई।

+0

मैंने कोशिश की लेकिन "तरह का" काम नहीं किया। कुछ बार यह एक या बहुत से पुनर्निर्माण के बाद काम करता है। कभी-कभी नहीं। हर बार मैं थोड़ा और पागल हो जाता है। – Asincrono

+0

यह मेरे लिए काम करता था, लेकिन मैंने बिल लाहती के फिक्स को भी ऊपर करने का प्रयास किया, इसलिए मुझे नहीं पता कि दोनों के संयोजन ने इसे हल किया है ... – ccbunney

1

मैंने पाया कि एक नया संस्करण पुन: नियोजित करने के बाद, डिफ़ॉल्ट को रीसेट करने के बजाय बनाया गया है। इस नए संस्करण को 'डिफ़ॉल्ट' के रूप में चुनते समय सबकुछ अपेक्षित के रूप में काम करता था।

https://appengine.google.com/adminlogs?&app_id=<project_id> 

चेक पर: (मुख्य/संस्करण) पर डिफ़ॉल्ट के रूप में

उदाहरण का चयन

https://<project_id>.appspot.com/_ah/api/explorer 
0

यहाँ सही ठीक है।

ऐप इंजन पर लॉग ऑन करें। बाईं तरफ के उदाहरणों पर क्लिक करें। दाहिने तल पर, आपको "शटडाउन"

शट डाउन पर क्लिक करें। (शटडाउन सिर्फ बंद नहीं है। यह पुनरारंभ है)।

उदाहरण 10-12 सेकंड में शुरू हो जाता है। नोट: इन 10-12 सेकंड के दौरान, ऐप इंजन पहुंच योग्य नहीं है। इसलिए, यदि आपका ऐप लाइव है, तो आपका क्लाउड इन 10-12 सेकंड के लिए काम नहीं करेगा।

10 सेकंड के बाद पृष्ठ को रीफ्रेश करें और सुनिश्चित करें कि आप शटडाउन विकल्प देखते हैं। इसका मतलब है कि आपका उदाहरण पुनरारंभ किया गया है।

अब, पुनः प्रयास करें और यह काम करेगा। मुझे अभी भी [email protected] पर ईमेल भेजें यदि आपके पास अभी भी

+0

@ बिल लाठी द्वारा प्रदान किए गए स्वीकृत उत्तर की जांच करें। यह मेरे लिए काम करता था और मुझे फिर से एक ही समस्या नहीं थी। – Asincrono

+0

हां, मैंने @ बिल लाठी द्वारा सुझाए गए सुझावों को किया था, लेकिन इससे मदद नहीं मिली। मैंने जो पोस्ट किया वह मेरी मदद करता है। इस समय, मुझे यकीन नहीं है कि इस मुद्दे का क्या कारण था। – Jay

संबंधित मुद्दे