0
votes

I'm trying to use google cloud datastore for my maven project, but I'm in a bit of trouble.

When I execute

Consumer consumer=new Consumer(username+password,username,password,name,email) {
    ofy().save().entity(consumer).now(); }

It stops in ObjectifyFilter.class at

try (Closeable closeable = ObjectifyService.begin()) {   ..

and it throws

java.lang.IllegalStateException at com.google.appengine.repackaged.com.google.common.base.Preconditions.checkState(Preconditions.java:443) at com.google.appengine.api.datastore.DatastoreServiceGlobalConfig$Builder.build(DatastoreServiceGlobalConfig.java:233) at com.google.appengine.api.datastore.DatastoreServiceGlobalConfig.fromEnv(DatastoreServiceGlobalConfig.java:311) at com.google.appengine.api.datastore.DatastoreServiceGlobalConfig.getConfig(DatastoreServiceGlobalConfig.java:47) at com.google.appengine.api.datastore.DatastoreServiceFactoryImpl.getAsyncDatastoreService(DatastoreServiceFactoryImpl.java:19) at com.google.appengine.api.datastore.DatastoreServiceFactoryImpl.getAsyncDatastoreService(DatastoreServiceFactoryImpl.java:9) at com.google.appengine.api.datastore.DatastoreServiceFactory.getAsyncDatastoreService(DatastoreServiceFactory.java:32) at com.googlecode.objectify.ObjectifyFactory.createRawAsyncDatastoreService(ObjectifyFactory.java:133) at com.googlecode.objectify.ObjectifyFactory.createAsyncDatastoreService(ObjectifyFactory.java:121) at com.googlecode.objectify.impl.ObjectifyImpl.createAsyncDatastoreService(ObjectifyImpl.java:246) at com.googlecode.objectify.impl.ObjectifyImpl.createWriteEngine(ObjectifyImpl.java:257) at com.googlecode.objectify.impl.SaverImpl.entities(SaverImpl.java:60) at com.googlecode.objectify.impl.SaverImpl.entity(SaverImpl.java:35) at it.units.view.ConsumerView.createConsumer(ConsumerView.java:43) at it.units.controller.login.processRequest(login.java:45) at it.units.controller.login.doPost(login.java:92) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:867) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623) at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:134) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:48) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at com.google.appengine.tools.development.jetty9.StaticFileFilter.doFilter(StaticFileFilter.java:123) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366) at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349) at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610) at com.google.appengine.tools.development.DevAppServerRequestLogFilter.doFilter(DevAppServerRequestLogFilter.java:44) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1588) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1557) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247) at com.google.appengine.tools.development.jetty9.DevAppEngineWebAppContext.doScope(DevAppEngineWebAppContext.java:94) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at com.google.appengine.tools.development.jetty9.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:595) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.Server.handle(Server.java:502) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) at java.lang.Thread.run(Thread.java:748)

The entities register operation goes through. It occurs when server starts:

public void contextInitialized(ServletContextEvent event) {

    ObjectifyService.register(Consumer.class);
    ObjectifyService.register(Administrator.class);
    ObjectifyService.register(Uploader.class);
    ObjectifyService.register(File.class);
}

but after that I can't visualise the entities in the datastore. Should I see them, right? (I'm sure it does register operations, I checked that in debug mode)

Can someone help me?

2

2 Answers

0
votes

That exception is being thrown out of the appengine SDK - it looks like some sort of configuration issue. It should include an exception message that explains the problem.

Registering entities does not do anything with data in the datastore. It only configures the software in your application VM. The datastore shows entities that you have saved - remember that it's pretty much schemaless; you can create arbitrary kinds at any time.

Maybe take a step back and implement a quick spike to get familiar with the environment. Skip Objectify for a second and write an app that uses the low-level API (DatastoreServiceFactory and DatastoreService) to write one simple test entity to the datastore. Once that works (proving your config) then go forward with Objectify.

0
votes

Thanks for your help! I solved by adding

    <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>9.4.14.v20181114</version>
    </plugin>