我正在使用ne4j-ogm 2.0.4将现有的应用程序从Spring-Data-Neo4j 3.x迁移到4.1。在克服了一些障碍之后,它现在直接从IDE启动时运行良好。
但是,当我通过Spring Boot runnable jar运行它时,它找不到任何DomainEntities:
(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插件构建的,该插件允许将jar创建为可执行文件:
springBoot {
executable = true
}当jar启动时,我通过远程调试附加到应用程序,并发现org.neo4j.ogm.scanner.ClassPathScanner#scan只包含我的jar作为classPathElement。根据代码,现在应该将其作为zip/jar文件进行扫描。但是,当执行classPathElement.isFile()时,它的计算结果为false,并且跳过jar。为什么会这样呢?可执行jar文件不是文件吗?
我可以采取哪些步骤来使其运行?我可能会使用一些其他的部署机制,但我发现这相当简单并且工作良好。
发布于 2016-08-22 00:29:07
我做了一些额外的调查,结果发现这与runnable jar一点关系都没有。这实际上是由于jar文件的路径中有一个空格造成的。
我认为这是一个非常有效的案例,我不确定为什么它不能工作。不过,在我的例子中,可以简单地重命名相应的文件夹并删除空格。
https://stackoverflow.com/questions/39053324
复制相似问题