Я использую библиотеку "com.google.cloud" % "google-cloud-firestore" % "1.32.5"
для подключения к пожарному хранилищу Google Cloud.
val firestoreDB = FirestoreOptions.newBuilder().setProjectId("project_id").build().getService
Это код, который я использую для подключения к пожарному хранилищу, GOOGLE_APPLICATION_CREDENTIALS
уже установлено. Когда я запускаю свою работу, она выдает следующую ошибку:
Exception in thread "main" java.lang.NoSuchFieldError: IS_RESTRICTED_APPENGINE
at io.grpc.okhttp.OkHttpChannelProvider.priority(OkHttpChannelProvider.java:37)
at io.grpc.ManagedChannelProvider$1.getPriority(ManagedChannelProvider.java:49)
at io.grpc.ManagedChannelProvider$1.getPriority(ManagedChannelProvider.java:41)
at io.grpc.ServiceProviders$1.compare(ServiceProviders.java:79)
at java.util.Collections$ReverseComparator2.compare(Collections.java:5178)
at java.util.TimSort.countRunAndMakeAscending(TimSort.java:355)
at java.util.TimSort.sort(TimSort.java:220)
at java.util.Arrays.sort(Arrays.java:1512)
at java.util.ArrayList.sort(ArrayList.java:1462)
at java.util.Collections.sort(Collections.java:175)
at io.grpc.ServiceProviders.loadAll(ServiceProviders.java:76)
at io.grpc.ServiceProviders.load(ServiceProviders.java:42)
at io.grpc.ManagedChannelProvider.<clinit>(ManagedChannelProvider.java:37)
at io.grpc.ManagedChannelBuilder.forAddress(ManagedChannelBuilder.java:39)
at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createSingleChannel(InstantiatingGrpcChannelProvider.java:270)
at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.access$1500(InstantiatingGrpcChannelProvider.java:71)
at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider$1.createSingleChannel(InstantiatingGrpcChannelProvider.java:202)
at com.google.api.gax.grpc.ChannelPool.create(ChannelPool.java:72)
at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createChannel(InstantiatingGrpcChannelProvider.java:209)
at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.getTransportChannel(InstantiatingGrpcChannelProvider.java:192)
at com.google.api.gax.rpc.ClientContext.create(ClientContext.java:155)
at com.google.api.gax.rpc.ClientContext.create(ClientContext.java:122)
at com.google.cloud.firestore.spi.v1.GrpcFirestoreRpc.<init>(GrpcFirestoreRpc.java:122)
at com.google.cloud.firestore.FirestoreOptions$DefaultFirestoreRpcFactory.create(FirestoreOptions.java:90)
at com.google.cloud.firestore.FirestoreOptions$DefaultFirestoreRpcFactory.create(FirestoreOptions.java:82)
at com.google.cloud.ServiceOptions.getRpc(ServiceOptions.java:561)
at com.google.cloud.firestore.FirestoreOptions.getFirestoreRpc(FirestoreOptions.java:385)
at com.google.cloud.firestore.FirestoreImpl.<init>(FirestoreImpl.java:77)
at com.google.cloud.firestore.FirestoreOptions$DefaultFirestoreFactory.create(FirestoreOptions.java:73)
at com.google.cloud.firestore.FirestoreOptions$DefaultFirestoreFactory.create(FirestoreOptions.java:66)
at com.google.cloud.ServiceOptions.getService(ServiceOptions.java:541)
at com.xyz.example.BigQueryToTeradataPipeline$$anonfun$2.apply(BigQueryToTeradataPipeline.scala:177)
at com.xyz.example.BigQueryToTeradataPipeline$$anonfun$2.apply(BigQueryToTeradataPipeline.scala:126)
at scala.collection.immutable.List.map(List.scala:273)
at com.xyz.example.BigQueryToTeradataPipeline$.delayedEndpoint$com$analytics$transfer$BigQueryToTeradataPipeline$1(BigQueryToTeradataPipeline.scala:126)
at com.xyz.example.BigQueryToTeradataPipeline$delayedInit$body.apply(BigQueryToTeradataPipeline.scala:74)
at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App$$anonfun$main$1.apply(App.scala:76)
at scala.App$$anonfun$main$1.apply(App.scala:76)
at scala.collection.immutable.List.foreach(List.scala:381)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
at scala.App$class.main(App.scala:76)
at com.xyz.example.BigQueryToTeradataPipeline$.main(BigQueryToTeradataPipeline.scala:74)
at com.xyz.example.BigQueryToTeradataPipeline.main(BigQueryToTeradataPipeline.scala)
Я попытался настроить appengine-sbt-plugin
для своего приложения, но оно по-прежнему дает то же исключение. Чтобы убедиться в отсутствии проблем с доступом к пожарному хранилищу, я клонировал this и выполнил команду для сборки:
mvn clean package
И нижеприведенная команда для запуска программы работает нормально записать в пожарный магазин для данного идентификатора проекта.
mvn exec:exec -Dfirestore.project.id="project-id"
Может кто-нибудь помочь мне с тем, что здесь не так?
Спасибо !!!!!!