0

嗨,也许这是一个愚蠢的问题,但目前我正在测试将扳手与 appengine 一起使用。但是,即使在本地或远程环境中运行一个空事务,我也有问题。我已经尝试过 mvm 和 flex。

我基本上所做的只是运行一个微不足道的事务

System.out.println("HELLO")
TransactionRunner.TransactionCallable callable =  new TransactionRunner.TransactionCallable<Void>() {

        @Nullable
        @Override
        public Void run(TransactionContext transaction) throws Exception {
                System.out.println("WORLD")

        }}

databaseClient.readWriteTransaction().run(callable);

然而,这段代码似乎在最后一行被阻塞,并且需要永远返回。我在 appengine 之外尝试了相同的代码(以及更复杂的事务逻辑),它按预期工作。

同样,这是我尝试遵循的非常简单的示例,但是我无法理解。所以我想知道什么可能会出错。

编辑:

对不起,我的错,我不认为这是交易的问题。我试过只是做一个singeUse读取它也永远阻塞。所以我怀疑我需要为 appengine 上的扳手设置一些权限问题?但是我真的在文档中的任何地方都找不到它...

编辑:

稍等片刻,得到这样的stacktrace

Exception in thread "grpc-default-executor-0" java.lang.NullPointerException
    at com.google.appengine.tools.development.RequestEndListenerHelper.getListeners(RequestEndListenerHelper.java:52)
    at com.google.appengine.tools.development.RequestEndListenerHelper.register(RequestEndListenerHelper.java:39)
    at com.google.appengine.tools.development.RequestThreadFactory$1$1.start(RequestThreadFactory.java:65)
    at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:950)
    at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1368)
    at io.grpc.auth.GoogleAuthLibraryCallCredentials.applyRequestMetadata(GoogleAuthLibraryCallCredentials.java:100)
    at io.grpc.internal.CallCredentialsApplyingTransportFactory$CallCredentialsApplyingTransport.newStream(CallCredentialsApplyingTransportFactory.java:98)
    at io.grpc.internal.DelayedClientTransport$PendingStream.createRealStream(DelayedClientTransport.java:392)
    at io.grpc.internal.DelayedClientTransport$PendingStream.access$100(DelayedClientTransport.java:379)
    at io.grpc.internal.DelayedClientTransport$2.run(DelayedClientTransport.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at com.google.appengine.tools.development.RequestThreadFactory$1$1$2.run(RequestThreadFactory.java:110)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.google.appengine.tools.development.RequestThreadFactory$1$1.run(RequestThreadFactory.java:107)
4

0 回答 0