Обновлено : Прошло несколько дней, когда я пытался приспособиться несколько раз между тем, потом вернулся к этой базе кода, но все еще столкнулся с той же проблемой.
Я разочарован тем, что у меня есть приложение 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 не поддерживает эту автоконфигурацию, уже закодированную в приложении и кодах свойств ?