如何从GAE标准环境中使用stackdriver客户端?

时间:2017-03-15 07:56:18

标签: google-app-engine stackdriver

执行这一行:

logging = LoggingOptions.getDefaultInstance().getService()

在Google App Engine标准环境实例结果中:

com.google.api.server.spi.SystemService invokeServiceMethod: exception occurred while calling backend method (SystemService.java:398)
java.lang.NoClassDefFoundError: java.nio.channels.spi.SelectorProvider is a restricted class. Please see the Google App Engine developer's guide for more details.
    at java.nio.channels.spi.SelectorProvider.<clinit>(SelectorProvider.java)
    at io.netty.channel.nio.NioEventLoopGroup.<init>(NioEventLoopGroup.java:59)
    at io.grpc.netty.Utils$DefaultEventLoopGroupResource.create(Utils.java:187)
    at io.grpc.netty.Utils$DefaultEventLoopGroupResource.create(Utils.java:171)
    at io.grpc.internal.SharedResourceHolder.getInternal(SharedResourceHolder.java:121)
    at io.grpc.internal.SharedResourceHolder.get(SharedResourceHolder.java:91)
    at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory.<init>(NettyChannelBuilder.java:311)
    at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory.<init>(NettyChannelBuilder.java:280)
    at io.grpc.netty.NettyChannelBuilder.buildTransportFactory(NettyChannelBuilder.java:230)
    at io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:239)
    at com.google.api.gax.grpc.InstantiatingChannelProvider.createChannel(InstantiatingChannelProvider.java:123)
    at com.google.api.gax.grpc.InstantiatingChannelProvider.getChannel(InstantiatingChannelProvider.java:110)
    at com.google.api.gax.grpc.ProviderManager.getChannel(ProviderManager.java:105)
    at com.google.api.gax.grpc.ChannelAndExecutor.create(ChannelAndExecutor.java:67)
    at com.google.api.gax.grpc.ClientSettings.getChannelAndExecutor(ClientSettings.java:81)
    at com.google.cloud.logging.spi.v2.ConfigServiceV2Client.<init>(ConfigServiceV2Client.java:131)
    at com.google.cloud.logging.spi.v2.ConfigServiceV2Client.create(ConfigServiceV2Client.java:122)
    at com.google.cloud.logging.spi.DefaultLoggingRpc.<init>(DefaultLoggingRpc.java:141)
    at com.google.cloud.logging.LoggingOptions$DefaultLoggingRpcFactory.create(LoggingOptions.java:68)
    at com.google.cloud.logging.LoggingOptions$DefaultLoggingRpcFactory.create(LoggingOptions.java:62)
    at com.google.cloud.ServiceOptions.getRpc(ServiceOptions.java:503)
    at com.google.cloud.logging.LoggingImpl.<init>(LoggingImpl.java:96)
    at com.google.cloud.logging.LoggingOptions$DefaultLoggingFactory.create(LoggingOptions.java:43)
    at com.google.cloud.logging.LoggingOptions$DefaultLoggingFactory.create(LoggingOptions.java:38)
    at com.google.cloud.ServiceOptions.getService(ServiceOptions.java:490)

有没有办法让它发挥作用?

1 个答案:

答案 0 :(得分:0)

您必须使用google-api-services的v2 api。说明:

Google提供了两组受支持的库,用于与其云服务进行交互。

  1. Google API客户端库 [1](google-api-services):在每个API的REST界面之上提供程序化覆盖的旧库
  2. Google云图书馆 [2](google-cloud):基于gRPC的alpha / beta库。据称它们性能更高,但标准Appengine不支持(在github页面中找到这个小注释[3]),因为gRPC的网络安全限制。
  3. 现在每组库都有一套v1和v2的api集合,用于两组库(v1已经停产)。

    1. google-api-services v2文档[4]
    2. google-cloud v2文档[5]
    3. 来源: