Весенняя загрузка java.lang.IllegalArgumentException: URL-адрес должен начинаться с ‘jdbc’

#java #spring #postgresql #spring-boot #illegalargumentexception

#java #весна #postgresql #весенняя загрузка #illegalargumentexception

Вопрос:

При попытке запустить мой проект я получаю сообщение об ошибке:

java.lang.IllegalArgumentException: URL-адрес должен начинаться с ‘jdbc’

Я настраиваю подключение к базе данных в файле application.properties, который выглядит следующим образом:

 spring.datasource.url=${JDBC_DATABASE_URL}
spring.datasource.username=${JDBC_DATABASE_USERNAME}
spring.datasource.password=${JDBC_DATABASE_PASSWORD}       
 

И иметь скрипт запуска maven / spring-boot, который получает параметры виртуальной машины:

 -DJDBC_DATABASE_URL="jdbc:postgresql://localhost:5432/project"
-DJDBC_DATABASE_USERNAME="postgres"
-DJDBC_DATABASE_PASSWORD="postgres"
 

Несколько тестов показали мне, что параметры виртуальной машины полностью не разрешены, но я понятия не имею, как это исправить.

Моя среда разработки — IntelliJ Community Edition.

Это сработало нормально. Сегодня я обновил проект до Java 15, но, на мой взгляд, это не должно приводить к такой проблеме.

У вас есть какие-либо идеи, где конфигурация перезаписывается или что-то в этом роде?

Ответ №1:

Когда вы цитируете только значение, символы кавычек становятся частью значения, что означает, что URL-адрес теперь начинается с a "jdbc , поэтому вы получаете сообщение об ошибке «должно начинаться с jdbc «.

У вас есть два варианта:

  1. Не заключать в кавычки:
     -DJDBC_DATABASE_URL=jdbc:postgresql://localhost:5432/project
    -DJDBC_DATABASE_USERNAME=postgres
    -DJDBC_DATABASE_PASSWORD=postgres
     
  2. Процитируйте весь аргумент:
     "-DJDBC_DATABASE_URL=jdbc:postgresql://localhost:5432/project"
    "-DJDBC_DATABASE_USERNAME=postgres"
    "-DJDBC_DATABASE_PASSWORD=postgres"
     

Комментарии:

1. Я пробовал это, но это, к сожалению, не решает мою проблему.