1

我正在尝试使用 java 中的嵌入式 neo4j 在 neo4j 中插入节点,但我收到此错误,我使用的是 neo4j 3.1.1 和 netbeans 7

Exception in thread "main" java.lang.NoSuchMethodError: org.neo4j.helpers.collection.Iterables.toList(Ljava/lang/Iterable;)Ljava/util/List;
    at org.neo4j.graphdb.factory.GraphDatabaseFactory.<init>(GraphDatabaseFactory.java:49)
    at twitter4j.EmbeddeNeo4j.createDb(EmbeddeNeo4j.java:41)

我不知道变量中的问题DB_PATH = "D:\\Neo4j CE 3.1.1\\graph database" 是否应该DB_PATH包含变量?代码是:

void createDb() {
        clearDb();
        // start DB
        graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH);
        registerShutdownHook(graphDb);

        // start Transaction
        Transaction tx = graphDb.beginTx();
        try {
            // adding data
            firstNode = graphDb.createNode();
            firstNode.setProperty("message", "Hello, ");
            secondNode = graphDb.createNode();
            secondNode.setProperty("message", "World!");

            relationship = firstNode.createRelationshipTo(secondNode, RelTypes.KNOWS);
            relationship.setProperty("message", "brave Neo4j ");

            // reading data
            System.out.println(firstNode.getProperty("message"));
            System.out.println(relationship.getProperty("message"));
            System.out.println(secondNode.getProperty("message"));

            greeting = (String) firstNode.getProperty("message") + (String) relationship.getProperty("message") + (String) secondNode.getProperty("message");

            Iterator<Relationship> it = firstNode.getRelationships().iterator();
            while(it.hasNext()) {
                Relationship r = it.next();
                Node[] nodes = r.getNodes();
                System.out.println(nodes[0].getProperty("message") + " " + r.getProperty("message") + " " + nodes[1].getProperty("message"));
            }

            tx.success();
        } finally {
            tx.terminate();
        }

    }

private void clearDb() {
    try {
        FileUtils.deleteRecursively(new File(DB_PATH));
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}
4

1 回答 1

0

我基本上遇到了同样的问题;这是由于 CLASSPATH 中存在旧版本的 Neo4J 以及我尝试使用的新版本造成的。(一路走来,我了解到我的 IDE 在构建新目标之前不会清除旧目标,这就是旧版本存在的原因。)

确保您已清除所有旧版本的相关 .jar。

于 2017-08-24T07:30:31.473 回答