AndroidP
AndroidP

Reputation: 761

Parameter name conflicts with a property in the resource

I've been getting this error after uploading a new version of my backend GAE app and it's really confusing me. I couldn't find anything online suggesting a remedy, and what's funny is that the program / method works just fine. So I'm not sure what the problem is:

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)

Here's my declaration for the method:

@ApiMethod(name = "deleteSingle", path="delete_single", httpMethod=HttpMethod.POST)
public singleHolder deleteSingle(@Named("uid") String uid, @Named("regid") String regid, mydaoDAO t) {

Is it not allowed to use the "Named" property name to be the same as the "String" name? I see it used in this example under the heading "Path parameters":

https://cloud.google.com/appengine/docs/java/endpoints/paramreturn_types

Upvotes: 1

Views: 844

Answers (1)

Zoltán Barics
Zoltán Barics

Reputation: 441

It's allowed to use Named property value to be the same as the variable name.

So as you didn't attach mydaoDAO source, I only can guess. In my opinion there is a regid variable in your mydaoDAO class, and it conflicts with the Named regid property.
You should try to use another Named value for regid property.

Hope this helps!

Upvotes: 4

Related Questions