【问题标题】:Exception in Executing Cypher Queries of Neo4j in Java Application在 Java 应用程序中执行 Neo4j 的密码查询时出现异常
【发布时间】:2012-11-01 10:30:02
【问题描述】:

我是 Neo4j 图形数据库的新手,我想从 java Application 创建 CyperQueries。我正在使用上面的neo4j手册

http://docs.neo4j.org/chunked/milestone/query-create.html

我正在从 java 应用程序创建节点,如下所示

public class CreateQuery
{
    public static final String DBPATH="D:/Neo4j/CQL";

    public static void main(String args[])
    {
        GraphDatabaseService path=new EmbeddedGraphDatabase(DBPATH);
        Transaction tx=path.beginTx();
        try
        {
        Map<String, Object> props  = new HashMap<String, Object>();
        props .put( "Firstnamename", "Sharon" );
        props .put( "lastname", "Eunis" );

        Map<String, Object> params = new HashMap<String, Object>();
        params.put( "props", props  );

        ExecutionEngine engine=new ExecutionEngine(path);
        ExecutionResult result=engine.execute( "create ({props})", params );
        System.out.println(result);
        tx.success();
        } 
        finally
        {
             tx.finish();
             path.shutdown();

        }
    }
}

我收到上述错误。我不知道这个错误,请任何1帮助尽快解决。

Exception in thread "main" java.lang.NoClassDefFoundError: com/googlecode/concurrentlinkedhashmap/ConcurrentLinkedHashMap$Builder
    at org.neo4j.cypher.internal.LRUCache.<init>(LRUCache.scala:30)
    at org.neo4j.cypher.ExecutionEngine$$anon$1.<init>(ExecutionEngine.scala:84)
    at org.neo4j.cypher.ExecutionEngine.<init>(ExecutionEngine.scala:84)
    at com.neo4j.CreateQuery.main(CretaeQuery.java:33)
Caused by: java.lang.ClassNotFoundException: com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap$Builder
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 4 more

【问题讨论】:

    标签: java neo4j graph-databases


    【解决方案1】:

    您可能需要添加此库的最新版本(Java 的 ConcurrentLinkedHashMap):

    http://concurrentlinkedhashmap.googlecode.com/files/concurrentlinkedhashmap-lru-1.3.1.jar

    【讨论】:

      【解决方案2】:

      您共享的代码运行良好。我认为问题在于您的导入语句。它们应该是这样的:

      import java.util.HashMap;
      import java.util.Map;
      import org.neo4j.cypher.javacompat.ExecutionEngine;
      import org.neo4j.cypher.javacompat.ExecutionResult;
      import org.neo4j.graphdb.GraphDatabaseService;
      import org.neo4j.graphdb.Transaction;
      import org.neo4j.kernel.EmbeddedGraphDatabase;
      

      【讨论】:

        【解决方案3】:

        它看起来像一个库错误。也许您导入了错误的版本?

        为了以防万一,我应该指出您打算使用 GDB 工厂来构建嵌入式实例:

        graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH);
        

        不确定它会产生什么影响。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-04
          • 1970-01-01
          • 1970-01-01
          • 2012-05-21
          相关资源
          最近更新 更多