My app is:
http://appengine.google.com/datastore/indexes?&app_id=romanhippo&version_id=1
My code works fine on my local machine. (I am using the eclipse plugin
for 3.4)
I have the index in my datastore.indexes.xml
<?xml version="1.0" encoding="utf-8"?>
<datastore-indexes autoGenerate="true">
<datastore-index kind="UserEntity" ancestor="false" source="auto">
<property name="email" direction="asc"/>
<property name="nickName" direction="desc"/>
</datastore-index>
</datastore-indexes>
The query I am trying to make is:
...
pm = PMF.get().getPersistenceManager();
query = pm.newQuery(UserEntity.class);
query.setFilter("email == userID");
query.setOrdering("nickName desc");
query.declareParameters("String userID");
users = (List<UserEntity>)query.execute(userID);
...
The stack trace is:
68.218.232.159 - - [20/Sep/2009:12:33:16 -0700] "POST /romanhippo/
login HTTP/1.1" 500 113 "http://romanhippo.appspot.com/romanhippo/
1634924FD7067EEAACF95164045F509B.cache.html" "Mozilla/5.0 (Windows; U;
Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/
3.0.195.21 Safari/532.0,gzip(gfe)" "romanhippo.appspot.com"
E 09-20 12:33PM 16.673
javax.servlet.ServletContext log: Exception while dispatching incoming
RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method
'public abstract com.rch.romanhippo.client.persistence.UserEntity
com.rch.romanhippo.client.logon.LoginService.createUser
(com.rch.romanhippo.client.persistence.UserEntity) throws
com.rch.romanhippo.client.logon.DuplicateUsersException,com.rch.romanhippo.client.logon.DuplicateNickNameException'
threw an unexpected exception:
com.google.appengine.api.datastore.DatastoreNeedIndexException: no
matching index found.
at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure
(RPC.java:360)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse
(RPC.java:546)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall
(RemoteServiceServlet.java:166)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost
(RemoteServiceServlet.java:86)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1093)
at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter
(SaveSessionFilter.java:35)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1084)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle
(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle
(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle
(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle
(ContextHandler.java:712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
405)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle
(AppVersionHandlerMap.java:237)
at org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
506)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
(HttpConnection.java:830)
at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable
(RpcRequestParser.java:76)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at
com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest
(JettyServletEngineAdapter.java:139)
at com.google.apphosting.runtime.JavaRuntime.handleRequest
(JavaRuntime.java:235)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime
$6.handleBlockingRequest(RuntimePb.java:4950)
at com.google.apphosting.base.RuntimePb$EvaluationRuntime
$6.handleBlockingRequest(RuntimePb.java:4948)
at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest
(BlockingApplicationHandler.java:24)
at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:
359)
at com.google.net.rpc.impl.Server$2.run(Server.java:823)
at com.google.tracing.LocalTraceSpanRunnable.run
(LocalTraceSpanRunnable.java:56)
at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan
(LocalTraceSpanBuilder.java:516)
at com.google.net.rpc.impl.Server.startRpc(Server.java:778)
at com.google.net.rpc.impl.Server.processRequest(Server.java:351)
at com.google.net.rpc.impl.ServerConnection.messageReceived
(ServerConnection.java:437)
at com.google.net.rpc.impl.RpcConnection.parseMessages
(RpcConnection.java:319)
at com.google.net.rpc.impl.RpcConnection.dataReceived
(RpcConnection.java:290)
at com.google.net.async.Connection.handleReadEvent(Connection.java:
428)
at com.google.net.async.EventDispatcher.processNetworkEvents
(EventDispatcher.java:762)
at com.google.net.async.EventDispatcher.internalLoop
(EventDispatcher.java:207)
at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:
101)
at com.google.net.rpc.RpcService.runUntilServerShutdown
(RpcService.java:251)
at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run
(JavaRuntime.java:392)
at java.lang.Thread.run(Unknown Source)
Caused by:
com.google.appengine.api.datastore.DatastoreNeedIndexException: no
matching index found.
at
com.google.appengine.api.datastore.DatastoreApiHelper.translateError
(DatastoreApiHelper.java:35)
at com.google.appengine.api.datastore.DatastoreApiHelper.makeSyncCall
(DatastoreApiHelper.java:56)
at com.google.appengine.api.datastore.DatastoreServiceImpl
$PreparedQueryImpl.runQuery(DatastoreServiceImpl.java:342)
at com.google.appengine.api.datastore.DatastoreServiceImpl
$PreparedQueryImpl.access$100(DatastoreServiceImpl.java:269)
at com.google.appengine.api.datastore.DatastoreServiceImpl
$PreparedQueryImpl$1.iterator(DatastoreServiceImpl.java:303)
at
org.datanucleus.store.appengine.query.RuntimeExceptionWrappingIterable.iterator
(RuntimeExceptionWrappingIterable.java:42)
at org.datanucleus.store.appengine.query.StreamingQueryResult.<init>
(StreamingQueryResult.java:77)
at
org.datanucleus.store.appengine.query.DatastoreQuery.newStreamingQueryResultForEntities
(DatastoreQuery.java:324)
at
org.datanucleus.store.appengine.query.DatastoreQuery.fulfillEntityQuery
(DatastoreQuery.java:310)
at org.datanucleus.store.appengine.query.DatastoreQuery.performExecute
(DatastoreQuery.java:242)
at org.datanucleus.store.appengine.query.JDOQLQuery.performExecute
(JDOQLQuery.java:84)
at org.datanucleus.store.query.Query.executeQuery(Query.java:1489)
at org.datanucleus.store.query.Query.executeWithArray(Query.java:
1371)
at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:243)
at
com.rch.romanhippo.server.persistence.AppEngineUserDAO.getUserByEmail
(AppEngineUserDAO.java:122)
at com.rch.romanhippo.server.LoginServiceImpl.createUser
(LoginServiceImpl.java:95)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Method.java:40)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse
(RPC.java:527)
... 43 more
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en
-~----------~----~----~----~------~----~------~--~---