Ошибка подключения к базе данных гибернации в Maven Dropwizard

1

Я пробовал проект Dropwizard с использованием Maven. Я могу запустить привет мировые программы. Когда я пытался запустить программу базы данных с помощью Hibernate, я получил ошибку, как показано ниже, при запуске программы с помощью java -jar.

default configuration has the following errors:   
        * database.driverClass may not be null (was null)   
        * database.url may not be null (was null)   
        * database.user may not be null (was null)  
        * template may not be empty (was null)

Это мой hello-world.yml файл

template: Hello, %s!
defaultName: Stranger
database:
    driverClass: com.mysql.jdbc.Driver
    user: root
    password:
    url: jdbc:mysql://localhost/test

Заранее спасибо !!

Теги:
maven
hibernate
dropwizard

2 ответа

1
Лучший ответ

Как указано в некоторых примерах в репозитории Dropwizard, вам может потребоваться предоставить конфигурацию вашего шаблона таким образом, чтобы свойства базы данных были удалены оттуда.

Итак, вы попробовали запустить приложение для настройки своей базы данных с помощью.yml файла в качестве аргумента командной строки? Что-то вроде следующего:

java -jar your-artifact.jar db migrate your-configuration-file.yml

Затем запустите приложение следующим образом:

java -jar your-artifact.jar server your-configuration-file.yml
  • 0
    Большое спасибо, я забыл включить в команду «your-configuration-file.yml».
  • 0
    Всегда пожалуйста @RajeeshV
1

У меня была такая же ошибка, но другое решение зафиксировало ее. Вы должны передать свой файл yml в качестве аргумента при запуске io.dropwizard.Application в режиме сервера. Например

public static void main(String[] args) throws Exception {
    new ApiApplication().run(new String[] {"server", "db.yaml"});
}

Добавление аргумента "db.yaml" в мой массив строк исправило его. Или, если вы передаете свои аргументы из терминалы/консоли, вам нужно добавить "yourconfig.yaml" или "yourconfig.yml" в качестве второго аргумента.

Источник решения, который я нашел

  • 0
    Я бы не стал этого делать, потому что вы игнорируете аргументы командной строки и значения жесткого кодирования в приложении, что потребует перекомпиляции приложения для внесения изменений. Вместо этого я бы порекомендовал просто передать аргументы командной строки «server» и «db.yaml».

Ещё вопросы

Сообщество Overcoder
Наверх
Меню