Java Spring-Data-Neo4J:Spring-Data-Neo4J如何管理Neo4J版本

Java Spring-Data-Neo4J:Spring-Data-Neo4J如何管理Neo4J版本,java,spring,exception,neo4j,spring-data-neo4j,Java,Spring,Exception,Neo4j,Spring Data Neo4j,当我在3.2.1中使用Spring-Data-Neo4J时,我的应用程序成功运行。当我将我的Neo4J迁移到版本2.2.2和Spring-Data-Neo4J迁移到3.2.2.RELEASE时,我得到以下异常: Caused by: java.lang.NoClassDefFoundError: org/neo4j/kernel/impl/transaction/SpringTransactionManager at org.springframework.data.neo4j.config.J

当我在
3.2.1中使用
Spring-Data-Neo4J
时,我的应用程序成功运行。当我将我的
Neo4J
迁移到版本
2.2.2
Spring-Data-Neo4J
迁移到
3.2.2.RELEASE
时,我得到以下异常:

Caused by: java.lang.NoClassDefFoundError: org/neo4j/kernel/impl/transaction/SpringTransactionManager
at org.springframework.data.neo4j.config.JtaTransactionManagerFactoryBean.createTransactionManagerForOnePointEight(JtaTransactionManagerFactoryBean.java:110)
at org.springframework.data.neo4j.config.JtaTransactionManagerFactoryBean.createJtaTransactionManager(JtaTransactionManagerFactoryBean.java:91)
at org.springframework.data.neo4j.config.JtaTransactionManagerFactoryBean.create(JtaTransactionManagerFactoryBean.java:65)
at org.springframework.data.neo4j.config.JtaTransactionManagerFactoryBean.<init>(JtaTransactionManagerFactoryBean.java:35)
at com.harmeetsingh13.config.Neo4jConfig.neo4jTransactionManagerFactoryBean(Neo4jConfig.java:48)
at com.harmeetsingh13.config.Neo4jConfig.neo4jTransactionManager(Neo4jConfig.java:66)
at com.harmeetsingh13.config.Neo4jConfig$$EnhancerBySpringCGLIB$$f77a14f4.CGLIB$neo4jTransactionManager$1(<generated>)
at com.harmeetsingh13.config.Neo4jConfig$$EnhancerBySpringCGLIB$$f77a14f4$$FastClassBySpringCGLIB$$b430987b.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:312)
at com.harmeetsingh13.config.Neo4jConfig$$EnhancerBySpringCGLIB$$f77a14f4.neo4jTransactionManager(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:166)
... 81 more
Caused by: java.lang.ClassNotFoundException: org.neo4j.kernel.impl.transaction.SpringTransactionManager
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1333)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1180)
... 97 more
原因:java.lang.NoClassDefFoundError:org/neo4j/kernel/impl/transaction/SpringTransactionManager
位于org.springframework.data.neo4j.config.JtaTransactionManagerFactoryBean.createTransactionManagerForOnePointEight(JtaTransactionManagerFactoryBean.java:110)
位于org.springframework.data.neo4j.config.JtaTransactionManagerFactoryBean.createJtaTransactionManager(JtaTransactionManagerFactoryBean.java:91)
位于org.springframework.data.neo4j.config.JtaTransactionManagerFactoryBean.create(JtaTransactionManagerFactoryBean.java:65)
位于org.springframework.data.neo4j.config.JtaTransactionManagerFactoryBean。(JtaTransactionManagerFactoryBean.java:35)
位于com.harmeetingh13.config.Neo4jConfig.neo4jTransactionManagerFactoryBean(Neo4jConfig.java:48)
位于com.harmeetingh13.config.Neo4jConfig.neo4jTransactionManager(Neo4jConfig.java:66)
在com.harmeetingh13.config.Neo4jConfig$$EnhancerBySpringCGLIB$$f77a14f4.CGLIB$neo4jTransactionManager$1()上
在com.harmeetingh13.config.Neo4jConfig$$EnhancerBySpringCGLIB$$f77a14f4$$FastClassBySpringCGLIB$$b430987b.invoke()上
位于org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
位于org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:312)
在com.harmeetingh13.config.Neo4jConfig$$EnhancerBySpringCGLIB$$f77a14f4.neo4jTransactionManager()上
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:483)
位于org.springframework.beans.factory.support.SimpleInstallationStrategy.instantiate(SimpleInstallationStrategy.java:166)
... 81多
原因:java.lang.ClassNotFoundException:org.neo4j.kernel.impl.transaction.SpringTransactionManager
位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1333)
位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1180)
... 97多
这是因为我们的
依赖项
版本不兼容。那么,
Spring-Data-Neo4J
如何管理
Neo4J
的版本呢

是否可以使用
Spring-Data-Neo4J 3.2.2.释放
Neo4J 2.2

更新

在@MichaelHunger建议之后,我使用了以下依赖项
Spring-Data-neo4J 3.4.0.M1
neo4J 2.2.2
。因此,我下面的依赖关系图是:


您必须使用3.4.0.M1或3.3.1(本周到期),这两个版本都提供了与Neo4j 2.2.2的兼容性,Hello@Michael version
3.3.1
在存储库中不存在,
3.4.0.M1
之前的版本,我认为这对生产不好。但是我会测试它。嘿@MichaelHunger当我使用
Spring-Data-neo4j3.4.0.M1
neo4j2.2.2
时,我得到了以下依赖性错误
缺少工件org.neo4J:neo4jcypher dsl:jar:2.0.1
。但是我的类路径中有
neo4j-cypher-dsl:jar:2.0.1
依赖关系。你能用mvn-dependency:tree检查一下吗?嘿@MichaelHunger请检查一下问题,我用依赖关系图更新了我的问题。更新版本后发生了什么?你能不能显示mvn dependency:tree的输出而不是屏幕截图?