Java 扳手无法在appengine上运行

Java 扳手无法在appengine上运行,java,google-app-engine,transactions,google-cloud-spanner,Java,Google App Engine,Transactions,Google Cloud Spanner,嗨,也许这是一个愚蠢的问题,但目前我正在测试与appengine一起使用扳手。但是,即使在本地或远程环境中运行空事务,我也会遇到问题。我试过mvm和flex 我基本上只是运行一个简单的事务 System.out.println("HELLO") TransactionRunner.TransactionCallable callable = new TransactionRunner.TransactionCallable<Void>() { @Nullable

嗨,也许这是一个愚蠢的问题,但目前我正在测试与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环境?扳手只在灵活的环境下工作。实际上,我刚刚确认我使用的是mvm,这是灵活的环境。你试过简单阅读吗?我在AppEngine标准中看到了类似的东西,但我想确定一下。另外,客户端库的哪个版本?maven坐标是什么?是的,我已经试过了,在帖子中更新过,它不是唯一的交易。任何单次读写都不起作用。我使用的是客户端版本
com.google.cloud:googlecloud-span:0.9.4-beta
,正如Daniel提到的,cloud-span客户端只在flex环境下工作。我建议您查看
src/main/appengine/app.yaml
,并检查
env:flex
是否已设置。还要检查
pom.xml
文件,确保未包含appengine SDK。com.google.appengine appengine-api-1.0-sdk
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)