【发布时间】:2015-11-09 01:16:30
【问题描述】:
我在上传新版本的后端 GAE 应用程序后遇到此错误,这真的让我很困惑。我在网上找不到任何建议补救措施的东西,有趣的是程序/方法工作得很好。所以我不确定问题是什么:
com.google.api.server.spi.SystemService invokeServiceMethod: exception occurred while calling backed method
com.google.api.server.spi.response.InternalServerErrorException:
com.google.api.server.spi.config.validation.PropertyParameterNameConflictException:
myendpoint.com.packagename.classname.MyClassEndpoint.deleteSingle parameter regid: Parameter name conflicts with a property in the resource.
at com.google.api.server.spi.config.jsonwriter.JsonConfigWriter.validatePropertyName(JsonConfigWriter.java:624)
at com.google.api.server.spi.config.jsonwriter.JsonConfigWriter.addBeanProperties(JsonConfigWriter.java:600)
at com.google.api.server.spi.config.jsonwriter.JsonConfigWriter.addBeanTypeToSchema(JsonConfigWriter.java:583)
at com.google.api.server.spi.config.jsonwriter.JsonConfigWriter.addTypeToSchema(JsonConfigWriter.java:567)
at com.google.api.server.spi.config.jsonwriter.JsonConfigWriter.addTypeToNode(JsonConfigWriter.java:668)
at com.google.api.server.spi.config.jsonwriter.JsonConfigWriter.convertComplexParameter(JsonConfigWriter.java:419)
at com.google.api.server.spi.config.jsonwriter.JsonConfigWriter.convertMethodRequestParameters(JsonConfigWriter.java:343)
at com.google.api.server.spi.config.jsonwriter.JsonConfigWriter.convertMethodRequest(JsonConfigWriter.java:319)
at com.google.api.server.spi.config.jsonwriter.JsonConfigWriter.convertApiMethod(JsonConfigWriter.java:307)
at com.google.api.server.spi.config.jsonwriter.JsonConfigWriter.convertApiMethods(JsonConfigWriter.java:280)
at com.google.api.server.spi.config.jsonwriter.JsonConfigWriter.convertApiMethods(JsonConfigWriter.java:266)
at com.google.api.server.spi.config.jsonwriter.JsonConfigWriter.generateForApi(JsonConfigWriter.java:124)
at com.google.api.server.spi.config.jsonwriter.JsonConfigWriter.writeConfig(JsonConfigWriter.java:103)
at com.google.api.server.spi.SystemService.getApiConfigs(SystemService.java:402)
at com.google.api.server.spi.BackendService.getApiConfigs(BackendService.java:98)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_$1.run(Method_.java:167)
at java.security.AccessController.doPrivileged(Native Method)
at com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.privilegedInvoke(Method_.java:164)
at com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.invoke_(Method_.java:125)
at com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.invoke(Method_.java:45)
at com.google.api.server.spi.SystemService.invokeServiceMethod(SystemService.java:359)
at com.google.api.server.spi.SystemServiceServlet.execute(SystemServiceServlet.java:113)
at com.google.api.server.spi.SystemServiceServlet.doPost(SystemServiceServlet.java:71)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
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:60)
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:257)
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:468)
at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:437)
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:444)
at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:230)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:300)
at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:441)
at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:234)
at java.lang.Thread.run(Thread.java:745)
这是我对该方法的声明:
@ApiMethod(name = "deleteSingle", path="delete_single", httpMethod=HttpMethod.POST)
public singleHolder deleteSingle(@Named("uid") String uid, @Named("regid") String regid, mydaoDAO t) {
难道不允许使用“Named”属性名与“String”名相同吗?我在“路径参数”标题下的这个例子中看到了它:
https://cloud.google.com/appengine/docs/java/endpoints/paramreturn_types
【问题讨论】:
标签: rest google-app-engine google-cloud-endpoints