Neo4j-Ogm с Spring Boot: сканирование пути к классам не находит DomainEntities при развертывании в качестве исполняемого файла jar

spring-boot spring-data-neo4j spring-data-neo4j-4 neo4j-ogm spring-boot-gradle-plugin

193 просмотра

1 ответ

Я нахожусь в процессе миграции существующего приложения с Spring-Data-Neo4j 3.x на 4.1, используя neo4j-ogm 2.0.4. После преодоления некоторых препятствий он теперь работает нормально при запуске непосредственно из IDE.

Однако он не находит никаких DomainEntities, когда я запускаю его через исполняемый jar Spring Boot:

(ClassPathScanner.java:132)    Classpath elements:
(ClassPathScanner.java:134)    D:\Programme\Project\myProject.jar
(DomainInfo.java:108)          Starting Post-processing phase
(DomainInfo.java:74)           Building annotation class map
(DomainInfo.java:87)           Building interface class map for 0 classes
(DomainInfo.java:136)          Checking for @Transient classes....
(DomainInfo.java:155)          Registering converters and deregistering transient fields and methods....
(DomainInfo.java:159)          Post-processing complete
(DomainInfo.java:69)           0 classes loaded in 40179 milliseconds

Исполняемый файл jar создается с помощью Spring Boot Gradle Plugin, который позволяет сделать исполняемый файл jar:

springBoot {
  executable = true
}

Я подключился к приложению через удаленную отладку при запуске jar и обнаружил, что org.neo4j.ogm.scanner.ClassPathScanner#scanсодержит только мой jar as classPathElement. Согласно коду, теперь это должно быть отсканировано как файл zip / jar. Однако, когда classPathElement.isFile()выполняется, это оценивается как ложное, и банка пропускается. Почему это так? Разве исполняемый файл не является файлом?

Какие шаги я могу предпринять, чтобы запустить это? Возможно, я мог бы использовать какой-то другой механизм развертывания, но я нашел это довольно простым и хорошо работающим.

Автор: geld0r Источник Размещён: 08.11.2019 11:12

Ответы (1)


0 плюса

Решение

Я провел дополнительное расследование, и оказалось, что это вообще не связано с работающей банкой. Это на самом деле было вызвано наличием пробела в пути к файлу jar.

Я думаю, что это вполне обоснованный случай, и я не уверен, почему это не работает. В моем случае было нормально просто переименовать соответствующую папку и убрать пробел.

Автор: geld0r Размещён: 21.08.2016 04:29
Вопросы из категории :
32x32