«java.lang.IllegalStateException: не удается загрузить класс драйвера» в приложении Spring Boot - PullRequest
0 голосов
/ 01 октября 2019

Я использую для настройки весенней загрузки с внешней конфигурацией YAML и CMD.

-> файл application.yml

spring:
  profiles: integration-test
  datasource:
    driverClassName: ${SPRING_DATASOURCE_DRIVER_CLASS_NAME}
    url: ${SPRING_DATASOURCE_URL}
    username: ${SPRING_DATASOURCE_USERNAME}
    password: ${SPRING_DATASOURCE_PASSWORD}

->cmd

mvn clean install

-> Результат

Caused by: java.lang.IllegalStateException: Cannot load driver class: ${SPRING_DATASOURCE_DRIVER_CLASS_NAME}

Кто-нибудь может мне это объяснить?

Ответы [ 2 ]

0 голосов
/ 01 октября 2019

Когда вы используете синтаксис ${}, вы фактически указываете Spring Boot использовать значение свойства, имя которого заключено в квадратные скобки. В вашем случае Spring Boot пытается разрешить свойство SPRING_DATASOURCE_DRIVER_CLASS_NAME. Когда происходит сбой, он использует строку «как есть», что приводит к упомянутой вами ошибке, поскольку не существует драйвера под именем ${SPRING_DATASOURCE_DRIVER_CLASS_NAME}.

. Чтобы решить эту проблему, вы можете либо:

  1. замените ${} действительными значениями, например, driverClassName: org.postgresql.Driver и сделайте то же самое для других свойств (url, username и password)
  2. , предоставьте свойства SPRING_DATASOURCE_DRIVER_CLASS_NAMESPRING_DATASOURCE_URL и два других. Они могут передаваться в командной строке с параметрами -D (например, -DSPRING_DATASOURCE_DRIVER_CLASS_NAME = org.postgresql.Driver) или через переменные среды. Подробнее о загрузочной документации см. . .
0 голосов
/ 01 октября 2019

Передайте эти переменные в конфигурации запуска вашей программы или в командной строке при запуске приложения с java YourMainClass, например,

java -DSPRING_DATASOURCE_DRIVER_CLASS_NAME=<full_qualified_name_of_your_jdbc_driver_class> -DSPRING_DATASOURCE_URL=<jdbc_url> YourMainClass

, а также передайте две другие переменные одинаковоКстати, имя пользователя и пароль!

Вы даже можете установить эти переменные окружения на уровне ОС, так что вам не нужно устанавливать их каждый раз при запуске приложения ...

, если вы используетеSpring Boot также взгляните на это: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...