Приложение Spring-boot работает в IDEA, но аварийно завершает работу при запуске jar - «Невозможно разрешить блок персистентности» - PullRequest
0 голосов
/ 04 февраля 2019

Обновлено : Прошло несколько дней, когда я пытался приспособиться несколько раз между тем, потом вернулся к этой базе кода, но все еще столкнулся с той же проблемой.

Я разочарован тем, что у меня есть приложение Spring Boot 1.5.12, которое работало в IDEA, но не работало при запуске исполняемого файла jar в Unix-боксе, и трассировка стека соответствует этому формату, который мне был необходим для обрезки трассировки стека для соответствия:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xxxEntityManager' defined in class path resource [com.abc.persistence.ConfigClass]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: Unable to resolve persistence unit root URL
................. [Skipped the stack strace]
Caused by: java.io.FileNotFoundException: class path resource [] cannot be resolved to URL because it does not exist
        at org.springframework.core.io.ClassPathResource.getURL(ClassPathResource.java:187) 
        at org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager.determineDefaultPersistenceUnitRootUrl(DefaultPersistenceUnitManager.java:602) 
        ... 48 common frames omitted

В соответствии с предложением Получая ошибку «Невозможно разрешить единицу сохраняемости» при создании jar без IDE , я пробовал этот обходной путь из 2 изменений, но он не работает вообще.

1)@EnableAutoConfiguration(exclude = HibernateJpaAutoConfiguration.class) to my application class

2)spring.data.jpa.repositories.enabled=false to my application.yml file in src/main/resource/ directory

Даже при добавлении этих двух изменений все равно отображается та же ошибка.

Я надеюсь, что кто-то может помочь мне выяснить это расстраивающее несоответствие, возникшее между поведением во время выполнения в IDEA иисполняемый фляга в консоли.

Редактировать : я использовал скрипт сборки Gradle с этой задачей сборки приложения для создания исполняемого файла jar приложения, чья jar извлекает все файлы src в именах пакетов и конфигурации свойств ресурсаФайлы yaml помимо сборки gradle:

applications {
...
}

Итак, я пытался раскрыть основную причину, которая сводит меня с ума, основанную на этой возможной загадке:

Может кто-нибудь знать оjar (JVM) процесс создания артефактов jar, который, в конце концов, сталкивается с крайне странной аномалией , где Intellj всегда мог установить URL-адрес единицы хранения по умолчанию , тогда как выполняетсяна jar не поддерживает эту автоконфигурацию, уже закодированную в приложении и кодах свойств ?

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