许多人声称SDN版本3.3.1或4.0.0.RC1应该与neo4j 2.2.x一起使用,但我无法使其工作.
我有这个spring配置配置:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:neo4j="http://www.springframework.org/schema/data/neo4j"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/data/neo4j http://www.springframework.org/schema/data/neo4j/spring-neo4j-2.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<context:annotation-config />
<context:spring-configured />
<neo4j:config graphDatabaseService="graphDatabaseService" base-package="com.x.protogy.neo4j"/>
<bean id="graphDatabaseService"
class="org.springframework.data.neo4j.rest.SpringCypherRestGraphDatabase">
<constructor-arg index="0" value="http://localhost:7476/db/data" />
</bean>
<tx:annotation-driven mode="aspectj"
transaction-manager="transactionManager" />
</beans>
Run Code Online (Sandbox Code Playgroud)
这会产生以下异常:
Caused by: java.lang.ClassNotFoundException: org.neo4j.kernel.impl.nioneo.store.StoreId
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1324)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1177)
Run Code Online (Sandbox Code Playgroud)
查看代码清楚地表明:SDN指的是在2.2.x中消除的neo4j库中的一个类:
org.neo4j.kernel.impl.nioneo.store.StoreId
Run Code Online (Sandbox Code Playgroud)
在这种情况下我有什么选择?
尝试使用此Java配置文件而不是XML配置.
import org.neo4j.ogm.session.Session;
import org.neo4j.ogm.session.SessionFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
@Configuration
@EnableNeo4jRepositories("com.app.repository")
@EnableTransactionManagement
@ComponentScan("com.app")
public class AppNeo4jConfiguration extends Neo4jConfiguration{
public SessionFactory getSessionFactory() {
return new SessionFactory("com.app.bo");
}
@Bean
public Neo4jServer neo4jServer() {
return new RemoteServer("http://localhost:7474");
}
@Bean
@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)
public Session getSession() throws Exception {
return super.getSession();
}
}
Run Code Online (Sandbox Code Playgroud)
我可以专门回答 SDN 4 (4.0.0.RC1) - 它绝对适用于 Neo4j 2.2
不支持 XML 配置,因此您需要使用基于 Java 的配置。请参阅http://docs.spring.io/spring-data/neo4j/docs/4.0.0.RC1/reference/html/#reference_setup
还有一个简短的指南https://www.airpair.com/neo4j/posts/the-essence-of-spring-data-neo4j-4
和示例应用程序https://github.com/neo4j-examples?query=sdn4
| 归档时间: |
|
| 查看次数: |
227 次 |
| 最近记录: |