Я использовал образец из Google для postgres:
https://github.com/GoogleCloudPlatform/java-docs-samples/tree/master/cloud-sql/postgres/servlet
Мы обновили параметры подключения в:
~ / Java-документы-образцы / облака SQL / Postgres / сервлет / SRC / Главный / WebApp / WEB-INF / AppEngine-web.xml
Если мы используем mvn appengine:run
, приложение работает просто отлично, и мы убедились, что postgres db в экземпляре Cloud SQL получает и предоставляет данные.
Если мы развернем с mvn appengine:deploy
, то получим ошибку при запуске пула соединений.
Не удалось запустить контекст c.g.a.r.j.AppEngineWebAppContext at ...
в конце концов...
com.example.cloudsql.ConnectionPoolContextListener.createConnectionPool (ConnectionPoolContextListener.java:96)
который в примере кода:
DataSource pool = new HikariDataSource(config);
При настройке параметров подключения:
config.setJdbcUrl(String.format("jdbc:postgresql:///%s", DB_NAME));
config.setUsername(DB_USER);
config.setPassword(DB_PASS);
и у меня есть различные версии String.format для setJdbcUrl, такие как
- jdbc: postgresql: // google //% s
- JDBC: PostgreSQL: // MyServer-ф //% s "
Но что может вызвать сбой развернутого приложения AppEngine в создании контекста данных?