Thank you for answering. I tried to create another project, and I now 
consider a Dog entity, but the problem is exactly the same as before. My 
goal is still to query my entities filtering the name. Here is my code:
@SuppressWarnings("unchecked")
@ApiMethod(name = "getDogByName", path = "dog/byname/{name}")
public List<Dog> getDogByName(@Named("name") String name) {
PersistenceManager mgr = getPersistenceManager();
List<Dog> candidates = null;
Query q = mgr.newQuery(Dog.class);
q.setFilter("name == nameParam");
q.declareParameters("String nameParam");
try {
candidates = (List<Dog>) q.execute(name);
} finally {
q.closeAll();
mgr.close();
}
return candidates;
}

Each request to my API works (the ones generated by Cloud Endpoints) except 
this one. When I do a GET request 
at https://myappid.appspot.com/_ah/api/dogendpoint/v1/dog/byname/nadir, 
here is what my dashboard logs send me back:

Uncaught exception from servlet
> java.io.IOException: 
> com.google.appengine.repackaged.org.codehaus.jackson.map.JsonMappingException:
>  Object Manager has been closed (through reference chain: 
> java.util.HashMap["items"])
>       at 
> com.google.api.server.spi.response.ServletResponseResultWriter.writeValueAsString(ServletResponseResultWriter.java:187)
>       at 
> com.google.api.server.spi.response.ServletResponseResultWriter.write(ServletResponseResultWriter.java:73)
>       at 
> com.google.api.server.spi.SystemService.invokeServiceMethod(SystemService.java:386)
>       at 
> com.google.api.server.spi.SystemServiceServlet.execute(SystemServiceServlet.java:127)
>       at 
> com.google.api.server.spi.SystemServiceServlet.doPost(SystemServiceServlet.java:85)
>       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.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:254)
>       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:484)
>       at 
> com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:438)
>       at 
> com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:445)
>       at 
> com.google.tracing.CurrentContext.runInContext(CurrentContext.java:220)
>       at 
> com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:309)
>       at 
> com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:301)
>       at 
> com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:442)
>       at 
> com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
>       at java.lang.Thread.run(Thread.java:724)
> Caused by: 
> com.google.appengine.repackaged.org.codehaus.jackson.map.JsonMappingException:
>  Object Manager has been closed (through reference chain: 
> java.util.HashMap["items"])
>       at 
> com.google.appengine.repackaged.org.codehaus.jackson.map.JsonMappingException.wrapWithPath(JsonMappingException.java:218)
>       at 
> com.google.appengine.repackaged.org.codehaus.jackson.map.JsonMappingException.wrapWithPath(JsonMappingException.java:183)
>       at 
> com.google.appengine.repackaged.org.codehaus.jackson.map.ser.std.SerializerBase.wrapAndThrow(SerializerBase.java:140)
>       at 
> com.google.appengine.repackaged.org.codehaus.jackson.map.ser.std.MapSerializer.serializeFields(MapSerializer.java:266)
>       at 
> com.google.appengine.repackaged.org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:186)
>       at 
> com.google.appengine.repackaged.org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:23)
>       at 
> com.google.appengine.repackaged.org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:610)
>       at 
> com.google.appengine.repackaged.org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:256)
>       at 
> com.google.appengine.repackaged.org.codehaus.jackson.map.ObjectWriter._configAndWriteValue(ObjectWriter.java:456)
>       at 
> com.google.appengine.repackaged.org.codehaus.jackson.map.ObjectWriter.writeValueAsString(ObjectWriter.java:393)
>       at 
> com.google.api.server.spi.response.ServletResponseResultWriter.writeValueAsString(ServletResponseResultWriter.java:183)
>       ... 38 more
> Caused by: org.datanucleus.exceptions.NucleusUserException: Object Manager 
> has been closed
>       at 
> org.datanucleus.ObjectManagerImpl.assertIsOpen(ObjectManagerImpl.java:5450)
>       at 
> org.datanucleus.ObjectManagerImpl.findObject(ObjectManagerImpl.java:2816)
>       at 
> com.google.appengine.datanucleus.EntityUtils.entityToPojo(EntityUtils.java:1014)
>       at 
> com.google.appengine.datanucleus.query.DatastoreQuery$2.apply(DatastoreQuery.java:229)
>       at 
> com.google.appengine.datanucleus.query.DatastoreQuery$2.apply(DatastoreQuery.java:226)
>       at 
> com.google.appengine.datanucleus.query.LazyResult.resolveNext(LazyResult.java:96)
>       at 
> com.google.appengine.datanucleus.query.LazyResult$LazyAbstractListIterator.computeNext(LazyResult.java:229)
>       at 
> com.google.appengine.datanucleus.query.AbstractIterator.tryToComputeNext(AbstractIterator.java:131)
>       at 
> com.google.appengine.datanucleus.query.AbstractIterator.hasNext(AbstractIterator.java:126)
>       at 
> com.google.appengine.datanucleus.query.LazyResult$AbstractListIterator.hasNext(LazyResult.java:183)
>       at 
> com.google.appengine.repackaged.org.codehaus.jackson.map.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:46)
>       at 
> com.google.appengine.repackaged.org.codehaus.jackson.map.ser.std.CollectionSerializer.serializeContents(CollectionSerializer.java:23)
>       at 
> com.google.appengine.repackaged.org.codehaus.jackson.map.ser.std.AsArraySerializerBase.serialize(AsArraySerializerBase.java:86)
>       at 
> com.google.appengine.repackaged.org.codehaus.jackson.map.ser.std.MapSerializer.serializeFields(MapSerializer.java:262)
>       ... 45 more
>
>
Le mercredi 10 décembre 2014 07:25:20 UTC+1, Vinny P a écrit :
>
> On Sun, Dec 7, 2014 at 3:12 AM, <[email protected] <javascript:>> wrote:
>
>> When I call this API method and give it a name parameter (which does 
>> exist in my datastore) it sends me nothing back but a 404 error. 
>>
>
>
> If you look at your App Engine logs (go to cloud.google.com/console > 
> click on your application ID > Compute > App Engine > Logs) do you see any 
> exception messages or error text recorded in an error log? If so, can you 
> post the entire exception text here, including the request log headers?
>  
>  
> -----------------
> -Vinny P
> Technology & Media Consultant
> Chicago, IL
>
> App Engine Code Samples: http://www.learntogoogleit.com
>  
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/d/optout.

Reply via email to