有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

找不到maven GAE类:原因:java。lang.ClassNotFoundException应用程序标识cRedential$AppenginecRedential包装

我正试图在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

我在这里主要学习了贝尔东教程: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启动应用程序运行到PostgreSQL服务器

我要认输了。。。 这可能是因为睡眠不足


共 (1) 个答案

  1. # 1 楼答案

    pom中缺少应用程序引擎插件。xml:

    <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>