Как использовать стековый драйвер из стандартной среды GAE?
Выполнение этой строки:
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 ответ
Вам нужно будет использовать v2 api google-api-services. Объяснение:
Google предоставляет два набора поддерживаемых библиотек для взаимодействия со своими облачными сервисами.
- Клиентские библиотеки Google API[1] (google-api-services): старые библиотеки, которые обеспечивают программное наложение поверх интерфейса REST каждого API
- Облачные библиотеки Google[2] (google-cloud): альфа / бета библиотеки, основанные на gRPC. Они, как утверждается, намного более производительны, но НЕ поддерживаются в Standard Appengine (эту небольшую заметку можно найти на их странице github. [3]) из-за ограничений сетевой безопасности на gRPC.
Каждый набор библиотек теперь имеет набор apis v1 и v2 для обоих наборов библиотек (v1 больше не поддерживается).
- google-api-services v2 документация [4]
- google-cloud v2 документация [5]
Источники:
- Страница основных документов: https://cloud.google.com/apis/docs/client-libraries-explained
- [1]: https://developers.google.com/api-client-library/
- [2]: http://googlecloudplatform.github.io/google-cloud-java/0.10.0/index.html
- [3]: https://github.com/GoogleCloudPlatform/google-cloud-java
- [4]: http://googlecloudplatform.github.io/google-cloud-java/0.10.0/apidocs/index.html
- [5]: https://developers.google.com/resources/api-libraries/documentation/logging/v2beta1/java/latest/com/google/api/services/logging/v2beta1/package-summary.html