2015-07-20 10 views
7

Viele behaupten, dass die SDN-Version 3.3.1 oder 4.0.0.RC1 mit neo4j 2.2.x funktionieren sollte, aber ich konnte es nicht zum Laufen bringen.SDN mit Neo4j 2.2x

Ich habe in diesem Frühjahr Config-Konfiguration:

<?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> 

, dass diese Ausnahme erzeugt:

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) 

Blick in den Code macht es deutlich: SDN bezieht sich auf eine Klasse in Neo4j-Bibliothek, die in ausschied 2.2.x:

org.neo4j.kernel.impl.nioneo.store.StoreId 

Was meine Optionen sind in diesem Fall?

Antwort

1

Ich hatte auch einige Probleme mit SDN immer mit neuen Neo4j zu arbeiten. Cannot configure @Transaction to work with Spring Data Neo4j

(BTW gibt es eine Java Konfiguration, die für mich funktionierte, vielleicht probieren Sie es aus, wenn Sie von XML zu Java wechseln ...)

Es wurde wahrscheinlich auch von fehlenden verursacht Klasse von neo4j-kernel jar ... Verwaltet, um eine Problemumgehung nach dem Debuggen und Untersuchen von Quellcode zu finden, aber die beste Idee für jetzt ist, neo4j-Version zu degradieren ...

+0

In der Nähe, aber ich verwende nicht den eingebetteten Server, sondern den Rest Endpoint-Server. Ich denke, dass mir entweder noch etwas fehlt oder das neue SDN nur dann zum funktionieren kommt, wenn der Server eingebettet ist. – biliboc

5

Versuchen Sie diese Java-Konfigurationsdatei anstelle von XML-Konfiguration.

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(); 
    } 
} 
Verwandte Themen