При запуске приложения чистой установки mvn пытается подключиться postgres к неправильному порту - PullRequest
0 голосов
/ 24 января 2020

Я получаю эту ошибку при запуске

$ mvn clean install

org.postgresql.util.PSQLException: Connection to localhost:5432
refused. Check that the hostname and port are correct and that the
postmaster is accepting TCP/IP connections.

Тем не менее в моем application.properties я четко определил порт как 5433:

spring.datasource.url=jdbc:postgresql://localhost:5433/mydb

Я также запускаю postgres на порт 5433 указан в postgres .conf:

port = 5433                             # (change requires restart)

Я запустил

$ systemctl postgresql restart

после изменения порта.

Что здесь не так? Я нигде не определял порт в моих файлах проекта.

Полный файл application.properties:

spring.main.banner-mode=off
logging.level.org.springframework=ERROR

spring.jpa.hibernate.ddl-auto=none

spring.datasource.initialization-mode=always
spring.datasource.platform=postgres
spring.datasource.url=jdbc:postgresql://localhost:5433/mydb
spring.datasource.username=myuser
spring.datasource.password=mypass

spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
spring.profiles.active=@spring.profiles.active@

Ответы [ 2 ]

0 голосов
/ 24 января 2020
  1. Открыть cmd
  2. Запись netstat -ao | find "5433"
  3. Вы получите
TCP    0.0.0.0:8089           DESKTOP-Q687KK9:0      LISTENING       7732

Используем порт 7732

выполнить эту команду Taskkill /pid 7732 /F

вывод: SUCCESS: The process with PID 7732 has been terminated.

пробег systemctl postgresql restart
0 голосов
/ 24 января 2020

Проблема в вашем конфигурационном файле (который вы не предоставили). Если вы используете весеннюю загрузку, скорее всего, у вас есть файл java вместо xml, и вы должны вызывать ваше свойство из файла application.properties.

@Value("${spring.datasource.url}")
private String url;

You должно иметь определение @Bean для источника данных, которое должно выглядеть примерно так:

@Bean
public DataSource dataSource() {
    DriverManagerDataSource dataSource = new DriverManagerDataSource();
    dataSource.setUrl(url);
    dataSource.setUsername(username);
    dataSource.setPassword(password);
    dataSource.setDriverClassName(driverClassName);
    return dataSource;
}

Проблема в том, что вы либо не устанавливаете в качестве URL-адреса то, что вы указали в файле application.properties, либо вы перезаписываешь это где-то по очереди.

* РЕДАКТИРОВАТЬ

@Configuration
public class PostgreConfiguration {

    @Value("${spring.datasource.url}")
    private String url;

    @Value("${spring.datasource.username}")
    private String username;

    @Value("${spring.datasource.password}")
    private String password;

    @Value("${spring.datasource.driver_class_name}")
    private String driverClassName;

    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        dataSource.setDriverClassName(driverClassName);
        return dataSource;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...