Проблема с развертыванием приложения Spring-Boot на удаленном сервере с удаленной базой данных PostgreSQL

#java #spring #postgresql #spring-boot #hibernate

Вопрос:

У меня есть приложение для весенней загрузки со свойствами приложения:

 spring.jpa.database=postgresql
spring.jpa.show-sql=true

server.port=${PORT:8080}

spring.datasource.driverClassName=org.postgresql.Driver
spring.sql.init.platform=postgres
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.datasource.url=jdbc:postgresql://1**.1**.**.**6:****/dbname  # server address
spring.datasource.username=n******
spring.datasource.password=p********
spring.jpa.hibernate.ddl-auto=update
 

и на моем локальном компьютере я использую:

 scp -P 1111 D:user-hometest-0.0.1-SNAPSHOT.jar user@111.111.11.111:/home/user
 

и тогда, конечно

 java -jar test-0.0.1-SNAPSHOT.jar
 

и у меня есть

 org.postgresql.util.PSQLException: The connection attempt failed.
        at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:315) ~[postgresql-42.2.22.jar!/:42.2.22]
        at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:51) ~[postgresql-42.2.22.jar!/:42.2.22]
        at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:223) ~[postgresql-42.2.22.jar!/:42.2.22]
        at org.postgresql.Driver.makeConnection(Driver.java:465) ~[postgresql-42.2.22.jar!/:42.2.22]
        at org.postgresql.Driver.connect(Driver.java:264) ~[postgresql-42.2.22.jar!/:42.2.22]
        at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-4.0.3.jar!/:na]
        at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-4.0.3.jar!/:na]
        at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-4.0.3.jar!/:na]
        at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[HikariCP-4.0.3.jar!/:na]
        at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-4.0.3.jar!/:na]
        at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-4.0.3.jar!/:na]
        at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-4.0.3.jar!/:na]
        at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) ~[hibernate-core-5.4.32.Final.jar!/:5.4.32.Final]
        at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:180) ~[hibernate-core-5.4.32.Final.jar!/:5.4.32.Final]

 

Мои постры в пом:

 <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>42.2.22</version>
        </dependency>
 

PASTEBIN Здесь полный вид консоли с ошибкой. Ни одно из решений не сработало. У кого-нибудь есть решение этой проблемы?

Ответ №1:

Похоже, с какого бы сервера вы ни запускали jar, он не может получить доступ к серверу базы данных на этом порту. Вы должны убедиться, что брандмауэр с обеих сторон настроен правильно (сервер JAR разрешает трафик через порт базы данных, а сервер базы данных разрешает трафик через порт базы данных с IP-адреса сервера JAR).

Вы можете проверить подключение с помощью telnet, выполнив команду telnet <database-ip> <port> , например telnet 123.123.123.123 9876 , с сервера JAR (при условии, что telnet доступен). Если ему удастся установить соединение, то запуск JAR должен быть в состоянии запуститься снова и подключиться к базе данных.