当前位置: 首页 > 知识库问答 >
问题:

如何为Google云应用程序引擎提供额外的JDBC属性

吴浩皛
2023-03-14

我正试图在Google App Engine上从Quarkus连接到PostgreSQL数据库。为此,必须提供额外的JDBC属性“socketFactory”和“cloudSqlInstance”。但我不知道如何在应用程序中指定这些。属性。

根据https://quarkus.io/guides/datasource,有一个属性quarkus.datasource.jdbc.additional。但是如果我尝试使用它,连接会失败,并且在日志中我看到:

提供了无法识别的配置密钥“quarkus.datasource.jdbc.additional jdbc properties”;它将被忽略;

我很确定已经安装了所需的扩展。

我尝试了其他几个属性,如这里提到的“quarkus.datasource.additional jdbc properties”,但没有成功。现在我已经没有办法尝试什么了。有没有办法指定所需的属性?

application.properties:

quarkus.package.type=uber-jar

# datasource configuration
quarkus.datasource.db-kind = postgresql
quarkus.datasource.jdbc.url = jdbc:postgresql:///counter
quarkus.datasource.username = postgres
quarkus.datasource.password = <password>
quarkus.datasource.jdbc.additional-jdbc-properties=socketFactory=com.google.cloud.sql.postgres.SocketFactory,cloudSqlInstance=<project>:<region>:<instance>
quarkus.datasource.jdbc.max-size=16

# drop and create the database at startup (use `update` to only update the schema)
quarkus.hibernate-orm.database.generation=drop-and-create

pom。xml:

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.acme</groupId>
  <artifactId>getting-started</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <properties>
    <compiler-plugin.version>3.8.1</compiler-plugin.version>
    <maven.compiler.parameters>true</maven.compiler.parameters>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <quarkus-plugin.version>1.10.2.Final</quarkus-plugin.version>
    <quarkus.platform.artifact-id>quarkus-universe-bom</quarkus.platform.artifact-id>
    <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
    <quarkus.platform.version>1.10.2.Final</quarkus.platform.version>
    <surefire-plugin.version>2.22.1</surefire-plugin.version>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>${quarkus.platform.group-id}</groupId>
        <artifactId>${quarkus.platform.artifact-id}</artifactId>
        <version>${quarkus.platform.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>com.google.cloud</groupId>
        <artifactId>libraries-bom</artifactId>
        <version>16.1.0</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-arc</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-resteasy</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-hibernate-orm</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-jdbc-postgresql</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-junit5</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.rest-assured</groupId>
      <artifactId>rest-assured</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-maven-plugin</artifactId>
        <version>${quarkus-plugin.version}</version>
        <extensions>true</extensions>
        <executions>
          <execution>
            <goals>
              <goal>build</goal>
              <goal>generate-code</goal>
              <goal>generate-code-tests</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${compiler-plugin.version}</version>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${surefire-plugin.version}</version>
        <configuration>
          <systemPropertyVariables>
            <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
            <maven.home>${maven.home}</maven.home>
          </systemPropertyVariables>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>native</id>
      <activation>
        <property>
          <name>native</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>${surefire-plugin.version}</version>
            <executions>
              <execution>
                <goals>
                  <goal>integration-test</goal>
                  <goal>verify</goal>
                </goals>
                <configuration>
                  <systemPropertyVariables>
                    <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
                    <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
                    <maven.home>${maven.home}</maven.home>
                  </systemPropertyVariables>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      <properties>
        <quarkus.package.type>native</quarkus.package.type>
      </properties>
    </profile>
  </profiles>
</project>

共有1个答案

柴禄
2023-03-14

试试这个:

quarkus.datasource.jdbc.additional-jdbc-properties.socketFactory=com.google.cloud.sql.postgres.SocketFactory
quarkus.datasource.jdbc.additional-jdbc-properties.socketFactoryArg=<project>:<region>:<instance>

PS:您不需要严格使用SocketFactory来连接来自GAE的CloudSQL。

 类似资料:
  • 我正在将一个非常基本的web应用程序部署到Google应用程序引擎。我使用的是Springboot,我可以在本地很好地运行应用程序,但当我部署到Google时,应用程序引擎不会启动实例。我在启动时配置了一个云SQL数据源。 我有云sql配置属性配置src/main/Resources/application.properties.App Engine似乎找不到这些属性,所以它无法正确设置Cloud

  • 有人知道我们如何使用超过12个并发连接从App Engine到Cloud SQL吗? 我们发现留档说:“在标准环境中运行的每个App Engine实例与Google CloudSQL实例的并发连接不能超过12个。” 我们正在使用 Java for App Engine 使用 Hibernate...连接池指出它不应该在生产环境中使用,但如果我们禁用池,我们将达到最大连接数。

  • 我正在读取google appengine应用程序中文件夹(/war/config/client.properties)中的属性文件。它在我的本地服务器上运行良好,但在生产模式下不工作,并且抛出异常java。安全AccessControlException:拒绝访问(java.io.FilePermission)。 你能告诉我如何在生产模式下工作吗。

  • hybris为面值提供了Solr Sort属性。我可以在HMC中看到每个solr项属性,我们可以设置它的排序行为。 我想用弹劾来设定这种类型。有一个属性(字符串类型),它保存着所选提供者的值,因为我必须在Impex中提供字符串类型,这样它才能工作。 请帮忙。

  • 我想在应用引擎上部署一个烧瓶ocketio服务器。这是服务器的导入和运行: 这是我的应用程序。yaml: 我使用angular作为客户机,它与以下线路相连: 当我尝试运行angular应用程序时,它会说 我还尝试将cors\u allowed\u origins选项设置为[],但也没有成功。我还尝试将session affinity设置为true,但也没有成功。 请求的资源上存在标头。 我没有在另

  • 我在Swing工作了很长时间,终于找到了学习GridBadLayout的自信。 我仍在学习它,在这种情况下,我不明白为什么以下代码没有按预期响应:特别是我不明白为什么布局以这种方式显示列。 通过运行代码片段,您将发现代表意大利国旗的面板没有正确定位:最后一列(国旗的红色部分)与国旗的其余部分(国旗的白色部分)分离。那么,我做错了什么?为了正确地代表国旗,我可以修正什么? 除了了解这个特定问题及其原