0

我正在尝试在 GAE 上启动一个简单的 Java (Maven) Spring Boot 应用程序,该应用程序与 PostrgreSql 服务器(也在云平台上)进行通信,但是我一直遇到缺少的依赖项。

我的 pom 中有这些依赖项:

    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-gcp-starter</artifactId>
      <version>1.1.3.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-gcp-starter-sql-postgresql</artifactId>
      <version>1.1.3.RELEASE</version>
    </dependency>

但是,每当我将应用程序部署到 GAE 和 FlyWay 时,都会抛出以下内容:

java.lang.ClassNotFoundException: com.google.appengine.api.ThreadManager

我主要在这里遵循 Baeldung 教程:https ://www.baeldung.com/spring-boot-google-app-engine 。

然后我找到了这个答案:AppEngine ClassNotFoundException: com.google.appengine.api.datastore.DatastoreServiceFactory 这导致我添加了 appengine 依赖项:

    <dependency>
      <groupId>com.google.appengine</groupId>
      <artifactId>appengine-api-1.0-sdk</artifactId>
      <version>1.9.77</version>
    </dependency>

然后抛出:

ClassNotFoundException: com.google.api.client.googleapis.extensions.appengine.auth.oauth2.AppIdentityCredential$AppEngineCredentialWrapper

然后导致我添加客户端依赖项..等等..等等..

我的完整依赖集现在是:

    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>google-cloud</artifactId>
      <version>0.47.0-alpha</version>
    </dependency>
    <dependency>
      <groupId>com.google.appengine</groupId>
      <artifactId>appengine-api-1.0-sdk</artifactId>
      <version>1.9.77</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-gcp-starter</artifactId>
      <version>1.1.3.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-gcp-starter-sql-postgresql</artifactId>
      <version>1.1.3.RELEASE</version>
    </dependency>

那..又回到了上面的异常:

ClassNotFoundException: com.google.api.client.googleapis.extensions.appengine.auth.oauth2.AppIdentityCredential$AppEngineCredentialWrapper

所以这可能是一个依赖问题,但我找不到任何关于需要添加哪些依赖项才能让简单的 Spring Boot 应用程序运行到 PostgreSQL 服务器的文档。

我要认输了……不过可能是睡眠不足

4

1 回答 1

0

您的 pom.xml 中缺少 App Engine 插件:

<build>
  <plugins>
    <plugin>
      <groupId>com.google.cloud.tools</groupId>
      <artifactId>appengine-maven-plugin</artifactId>
      <version>1.3.2</version>
    </plugin>
  </plugins>
</build>

对于你得到的异常,我不知道你在哪里使用它,但你可以添加依赖项:

<dependency>
<groupId>com.google.auth</groupId>
  <artifactId>google-auth-library-oauth2-http</artifactId>
  <version>0.18.0</version>
</dependency>
于 2019-11-20T11:51:15.597 回答