安卓手机后台启动失败,404没有找到,有时没有找到、后台、手机

2023-09-04 05:15:32 作者:不羁

最后一天下午我创建了一个项目并部署了移动后端开始。我编辑了客户端code和成功地做了一些数据插入。

Last afternoon I created a project and deployed the mobile backend started. I edited the client code and sucessfully did some data insertion.

一些时间(小时)后,我改变了cliend code再次插入失败,出现错误:

Some time (hours) after, I changed the cliend code again and the insertion failed with the error:

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

由于我没有做在code我得出的结论是错误是在应用程序引擎一侧有重大改变的,所以我重新部署该项目,并解决了这个问题。在插入来通过了。

As I didn't did any substantial change in the code I concluded that the error was on the app engine side so I redeployed the project and that solved the problem. The insertions came through again.

今天上午我回来的404错误。这次重新部署没有工作。

This morning I was back with the 404 error. This time redeploying didn't work.

错误日志,我得到了应用程序引擎是:

The error log I get in the app engine is:

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)

任何想法正在发生的事情和我有什么办法解决呢?

Any idea what is happening and what can I do to solve it?

推荐答案

我不完全明白是怎么回事,但我找到了一种方法来摆脱404错误在客户端,这是由应用程序引起的引擎方面没有响应。报告应用程序引擎日志中的错误所谈论的观众和客户端ID的应用程序。这些都是值当你配置由客户Id担保的身份验证设置。

I do not completely understand what is going on, but I found a way to get rid of the 404 errors on the client side, which are caused by the App Engine side not responding. The errors reported in the app engine logs are talking about audience and client ids for the app. Those are the values you set when you configure authentication for "Secured by Client Ids".

我发现,如果我把一些占位字符串值在那里,保存,然后又回到了打开(仅用于开发使用),并再次保存,应用程序引擎将不再有配置错误,并会响应客户端Android应用程序。

I found that if I put in some placeholder string values in there, saved, and then went back to "Open (for development use only)" and saved again, the app engine would no longer have config errors and would response to the client Android app.

目前我只到条目在留言簿数据进行的地方。但是,这肯定让我重新开始。我希望,如果我完全设置身份验证,问题就不会再回来。

At the moment I am only to the place where entries are made in the Guestbook data. But this definitely got me started again. I am hoping that if I set up authentication completely that the problem will not come back.