Ошибка при попытке создать код для отправки JSON в GCP с использованием учетных данных учетной записи службы - PullRequest
0 голосов
/ 12 ноября 2018

Ошибка при попытке отправить контент в Google Cloud с использованием учетных данных учетной записи службы

У нас есть ведро, созданное для наших проектов.

Я создал службу Java, которая пытается отправить содержимое JSON в корзину.

Я использую встроенные библиотеки для отправки содержимого в корзину.

Я прикрепил JARS, использованный, как указано в документации, и простой 4-строчный код для отправки содержимого файла в корзину.

Я в значительной степени следовал по ссылке ниже GITHUB, как рекомендовано документацией.

Но я не уверен, что у меня есть последние версии необходимых jar-файлов, хотя в документации упоминается только несколько файлов или jar-файлов, таких как (google-auth-library-oauth2-http, google-cloud-core, google-cloud) -storage и google-auth-library-credentials) мне пришлось добавить множество других jar-файлов для устранения ошибок зависимости для вышеупомянутых jar-файлов.

https://cloud.google.com/docs/authentication/production#auth-cloud-explicit-java

https://github.com/GoogleCloudPlatform/java-docs-samples/blob/master/auth/src/main/java/com/google/cloud/auth/samples/AuthExample.java

Here is my code

    import com.google.auth.Credentials;
    import com.google.auth.oauth2.GoogleCredentials;
    import com.google.auth.oauth2.ServiceAccountCredentials;
    import com.google.cloud.storage.Blob;
    import com.google.cloud.storage.BlobId;
    import com.google.cloud.storage.BlobInfo;
    import com.google.cloud.storage.Storage;
    import com.google.cloud.storage.StorageOptions;

            Credentials credentials = GoogleCredentials.fromStream(new FileInputStream(keyPath));
                Storage storage = StorageOptions.newBuilder().setCredentials(credentials).build().getService();

            BlobId blobId = BlobId.of("tms-data", "test");  
                BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setContentType("text/plain").build();
                Blob blob = storage.create(blobInfo, "Hello, Cloud Storage!".getBytes(("UTF-8")));

I have imported the following jars 

List of Jars used 

commons-logging-1.2.jar
httpcore-4.4.6.jar
google-api-client-jackson2-1.25.0.jar
google-http-client-1.25.0.jar
jackson-core-2.9.6.jar
httpclient-4.5.5.jar
jsr305-3.0.2.jar
google-oauth-client-1.25.0.jar
gson-2.1.jar
threetenbp-1.3.3.jar
gax-grpc-1.34.0.jar
gax-1.34.0.jar
google-auth-library-credentials-0.9.0.jar
google-auth-library-oauth2-http-0.11.0.jar
google-cloud-storage-1.51.0.jar
google-http-client-jackson2-1.26.0.jar
guava-23.0.jar
api-common-1.2.0.jar
google-cloud-core-grpc-1.52.0.jar
google-cloud-core-1.52.0.jar
google-cloud-core-http-1.52.0.jar
google-api-client-1.26.0.jar
xpp3-1.1.4c.jar
protobuf-java-2.4.1.jar

But i am still getting the following error

java.lang.ClassNotFoundException: com.google.api.client.extensions.appengine.http.UrlFetchTransport
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.google.cloud.http.HttpTransportOptions.<init>(HttpTransportOptions.java:131)
at com.google.cloud.http.HttpTransportOptions.<init>(HttpTransportOptions.java:45)
at com.google.cloud.http.HttpTransportOptions$Builder.build(HttpTransportOptions.java:90)
at com.google.cloud.storage.StorageOptions.getDefaultHttpTransportOptions(StorageOptions.java:106)
at com.google.cloud.storage.StorageOptions$StorageDefaults.getDefaultTransportOptions(StorageOptions.java:101)
at com.google.cloud.ServiceOptions.<init>(ServiceOptions.java:288)
at com.google.cloud.storage.StorageOptions.<init>(StorageOptions.java:83)
at com.google.cloud.storage.StorageOptions.<init>(StorageOptions.java:31)
at com.google.cloud.storage.StorageOptions$Builder.build(StorageOptions.java:78)
at WtrTMSTripAdvisor.v1.priv.service.sendJSONToGCP(service.java:431)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java:407)
at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:650)
at com.wm.app.b2b.server.util.tspace.ReservationProcessor.process(ReservationProcessor.java:39)
at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:49)
at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:243)
at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)
at com.wm.app.b2b.server.invoke.PipelineProcessor.process...<truncated>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...