Neo4J HelloWorld无法运行

时间:2013-03-27 14:58:57

标签: neo4j

我是Neo4J的新手,并且关注neo4j网站上的HelloWorld教程(http://docs.neo4j.org/chunked/milestone/tutorials-java-embedded-hello-world.html)。

我的目的是创建2个节点以及它们之间的关系,最后在可通过

访问的仪表板上观察它
[http://localhost:7474/webadmin/#] 

但问题是我在运行代码时遇到错误而我不知道如何解决。

任何帮助都会非常感激

非常感谢

这是我的代码和错误

代码

import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.RelationshipType;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;

public class HelloNeo4J {

private static enum RelTypes implements RelationshipType
{
    KNOWS
}

public static String DB_PATH= " /home/anas/graph/data/graph.db/" ; 

public static void main ( String[] args){

    GraphDatabaseService graphDb= new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH );
    Node firstNode, secondNode;
    Relationship relationship;

    Transaction tx = graphDb.beginTx();
    try
    {
        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 " );
        tx.success();
    }
    finally
    {
        tx.finish();
    }

}
}

错误

Exception in thread "main" org.neo4j.kernel.lifecycle.LifecycleException: Failed to transition org.neo4j.kernel.AbstractGraphDatabase$DefaultKernelExtensionLoader@691f36 from NONE to STOPPED
at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:388)
at org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:82)
at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:116)
at org.neo4j.kernel.AbstractGraphDatabase.run(AbstractGraphDatabase.java:224)
at org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:79)
at org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:70)
at org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:195)
at org.neo4j.graphdb.factory.GraphDatabaseFactory.newEmbeddedDatabase(GraphDatabaseFactory.java:56)
at HelloNeo4J.main(HelloNeo4J.java:20)
Caused by: java.lang.VerifyError: class org.neo4j.kernel.InternalAbstractGraphDatabase overrides final method getStoreDir.()Ljava/lang/String;
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at org.neo4j.index.lucene.LuceneIndexProvider.load(LuceneIndexProvider.java:65)
at org.neo4j.kernel.AbstractGraphDatabase$DefaultKernelExtensionLoader.loadIndexImplementations(AbstractGraphDatabase.java:1180)
at org.neo4j.kernel.AbstractGraphDatabase$DefaultKernelExtensionLoader.init(AbstractGraphDatabase.java:1152)
at  org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:382)
    ... 8 more

2 个答案:

答案 0 :(得分:3)

有两个问题,

首先:INFO:在日志中检测到非干净关闭...恢复已开始

您看到的信息是因为您没有使用db.shutdown()干净地关闭数据库,因此必须恢复未应用的事务日志。

第二:

如果要在Neo4j-Server中查看结果,则必须使用与conf/neo4j-server.properties中相同的db-directory,并且必须在写入数据时停止服务器它

另外,您也可以在嵌入式数据库之上运行服务器,请参阅:http://docs.neo4j.org/chunked/milestone/server-embedded.html

答案 1 :(得分:0)

请实现图形数据库(一种NoSQL)。这个图数据库 应该由实体和边的节点(具有属性)组成(其中 具有单个或多个属性,可以是方向性或双向性的 关系,支持节点索引和查询。查询语言有 以下关键字:START,MATCH,WHERE,RETURN,ORDER BY, AGGREGATE,SKIP和LIMIT。