Приложение Java не может установить соединение с Менеджером объявлений Google, когда оно развернуто в контейнере Docker. - PullRequest
0 голосов
/ 09 июня 2019

У меня есть приложение Java, разработанное с использованием весенней загрузки, которое устанавливает соединение с Менеджером объявлений Google (DFP) для сохранения данных в Менеджере Google AD. Он хорошо работает на локальном компьютере, но когда я развертываю его в Docker, он выдает ошибку при запуске приложения весенней загрузки.

Ниже jdk установлен в контейнере Docker: java-1.8.0-openjdk-amd64

Ниже приведены мои несколько фрагментов кода:

  1. Dockerfile:
#Pull Java 8 Image 
FROM java:8

#Add app jar to container
ADD target/my-service-0.0.1-SNAPSHOT.jar my-service-0.0.1-SNAPSHOT.jar

EXPOSE 8080
ENTRYPOINT ["java", "-jar", "my-service-0.0.1-SNAPSHOT.jar"]
  1. докер-compose.yml
version: "3.7"
services:
  my-service:
    build:
      context: . 
      dockerfile: Dockerfile
    image: my-service:latest 
    ports:
      - "8080:8080"
  1. Подключение к менеджеру объявлений Google:
    Credential oAuth2Credential = new OfflineCredentials.Builder().forApi(Api.AD_MANAGER)
                        .withClientSecrets(clientId, clientSecret).withRefreshToken(refreshToken).build()
                        .generateCredential();
                session = new AdManagerSession.Builder().withApplicationName(applicationName).withNetworkCode(networkCode)
                        .withOAuth2Credential(oAuth2Credential).build();

                AdManagerServices adManagerServices = new AdManagerServices();
                NetworkServiceInterface networkService = adManagerServices.get(session, NetworkServiceInterface.class);
                Network network = networkService.getCurrentNetwork();

Я ожидал, что соединение прошло успешно; но ниже я получил ошибку:

com.google.api.ads.common.lib.exception.OAuthException: Credential could not be refreshed.
er-order-service_1
   at com.google.api.ads.common.lib.auth.OfflineCredentials.generateCredential(OfflineCredentials.java:240)

Но когда я вижу ошибку, я получаю сообщение об ошибке ниже:

 Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...