Running Couchbase on App Engine would be counterproductive anyway as you
have no access to local storage for a backing store. You'd want to host
Couchbase on a Google Compute Engine <https://cloud.google.com/compute/>
instance where you do have access to local storage and don't have class
restrictions, and then access it from App Engine via the Couchbase Java
Client library <https://github.com/couchbase/couchbase-java-client>.
On Friday, December 18, 2015 at 3:30:46 PM UTC-5, Benjamin Glatzeder wrote:
>
> Hi!
>
> Running this line of code
> Cluster cluster = CouchbaseCluster.create("MY-IP");
> in a bare minimum Java GAE produces a crash.
>
> Couchbase is a NoSQL database.
> Gradle import for Couchbase:
>
> compile 'com.couchbase.client:java-client:2.2.2'
>
>
> Stacktrace:
>
> java.lang.NoClassDefFoundError: Could not initialize class
> com.google.apphosting.runtime.security.shared.stub.java.nio.channels.spi.SelectorProvider
>
> at
> com.couchbase.client.deps.io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:52)
>
> at
> com.couchbase.client.core.env.DefaultCoreEnvironment.<init>(DefaultCoreEnvironment.java:262)
>
> at
> com.couchbase.client.java.env.DefaultCouchbaseEnvironment.<init>(DefaultCouchbaseEnvironment.java:124)
>
> at
> com.couchbase.client.java.env.DefaultCouchbaseEnvironment.<init>(DefaultCouchbaseEnvironment.java:55)
>
> at
> com.couchbase.client.java.env.DefaultCouchbaseEnvironment$Builder.build(DefaultCouchbaseEnvironment.java:472)
>
> at
> com.couchbase.client.java.env.DefaultCouchbaseEnvironment.create(DefaultCouchbaseEnvironment.java:158)
>
> at
> com.couchbase.client.java.CouchbaseCluster.create(CouchbaseCluster.java:164)
> at
> com.couchbase.client.java.CouchbaseCluster.create(CouchbaseCluster.java:151)
> at ben.tests.couch8.backend.MyServlet.doPost(MyServlet.java:40)
> 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:37)
>
> 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:260)
>
> 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:78)
>
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> at
> com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:148)
>
> at
> com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:469)
>
> 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:256)
> 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:235)
>
> at java.lang.Thread.run(Thread.java:745)
>
>
> As far as I understand is the class
> (java.nio.channels.spi.SelectorProvider) not allowed to be executed because
> of security concerns. All white listed Java classes can be found here:
> https://cloud.google.com/appengine/docs/java/jrewhitelist Unfortunately
> this class is used by Couchbase. What would be your suggestion? Shall I
> host the code at another cloud-service provider?
>
> Kind regards
> Benjamin Glatzeder
>
>
>
--
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 https://groups.google.com/group/google-appengine.
To view this discussion on the web visit
https://groups.google.com/d/msgid/google-appengine/f59deec7-484e-4c64-9f4a-6da5ba65cb8d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.