У меня есть проект, где в моем src / main / resources у меня есть два файла сопоставления.
Foo.hbm.xml , Bar.hbm.xml
При запуске моего основного класса из затмения все работает нормально. При экспорте в файл jar с помощью подключаемого модуля maven я не могу создать фабрику сеансов из-за отсутствия файлов сопоставления. Ошибка:
Exception in thread "main" org.hibernate.MappingException: Resource: Foo.hbm.xml not found
Я не использую spring , хотя я также пытался использовать Spring, и у меня та же проблема. Фабрика сеансов Spring не может найти отображение при запуске из jar. Моя реализация следующая. Код:
Configuration hibernateConfig = new Configuration();
hibernateConfig.configure("hibernate.cfg.xml");
hibernateConfig.addResource("Foo.hbm.xml");
hibernateConfig.addResource("Bar.hbm.xml");
hibernateConfig.setProperty("hibernate.connection.url", conf.dbUrl);
hibernateConfig.setProperty("hibernate.connection.username", conf.dbUsername);
hibernateConfig.setProperty("hibernate.connection.password", conf.dbPassword);
Я также пытался добавить сопоставления через hibernate.cfg.xml , но он не работал с тем же результатом, работает в затмении, но не при использовании запускаемого JAR. Мой maven сборочный конфиг выглядит следующим образом.
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.app.EntryPoint</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Я создаю JAR с сборкой mvn: сборка , и когда я ее открываю, в корневом (/) JAR-файле отображаются сопоставления.
EDIT
Момент лицевой стороны лица после просмотра всего 6 часов. Foo.hbm.xml было написано неправильно, поэтому отображение называлось MOTAccounts.hbm.xml, и я использовал MotAccounts.hbm.xml.
Что исключило меня из этой возможности, так это то, что все работало в затмении, но не работало в JAR. Как я уже сказал, лицо ладонью момент.