空间数据加载后无法启动Neo4j Server

时间:2016-02-23 14:11:39

标签: java neo4j

我一直在尝试将Neo4j Spatial插件用于通过Java加载的数据。我添加了插件,当我启动一个空数据库时,这可以通过以下对服务器的GET请求来确认。

{
    "extensions": {
        "SpatialPlugin": {
            "addSimplePointLayer": "http://localhost:7474/db/data/ext/SpatialPlugin/graphdb/addSimplePointLayer",
            "findClosestGeometries": "http://localhost:7474/db/data/ext/SpatialPlugin/graphdb/findClosestGeometries",
            "addNodesToLayer": "http://localhost:7474/db/data/ext/SpatialPlugin/graphdb/addNodesToLayer",
            "addGeometryWKTToLayer": "http://localhost:7474/db/data/ext/SpatialPlugin/graphdb/addGeometryWKTToLayer",
            "findGeometriesWithinDistance": "http://localhost:7474/db/data/ext/SpatialPlugin/graphdb/findGeometriesWithinDistance",
            "addEditableLayer": "http://localhost:7474/db/data/ext/SpatialPlugin/graphdb/addEditableLayer",
            "addCQLDynamicLayer": "http://localhost:7474/db/data/ext/SpatialPlugin/graphdb/addCQLDynamicLayer",
            "addNodeToLayer": "http://localhost:7474/db/data/ext/SpatialPlugin/graphdb/addNodeToLayer",
            "getLayer": "http://localhost:7474/db/data/ext/SpatialPlugin/graphdb/getLayer",
            "findGeometriesInBBox": "http://localhost:7474/db/data/ext/SpatialPlugin/graphdb/findGeometriesInBBox",
            "updateGeometryFromWKT": "http://localhost:7474/db/data/ext/SpatialPlugin/graphdb/updateGeometryFromWKT"
        }
    },
    "node": "http://localhost:7474/db/data/node",
    "node_index": "http://localhost:7474/db/data/index/node",
    "relationship_index": "http://localhost:7474/db/data/index/relationship",
    "extensions_info": "http://localhost:7474/db/data/ext",
    "relationship_types": "http://localhost:7474/db/data/relationship/types",
    "batch": "http://localhost:7474/db/data/batch",
    "cypher": "http://localhost:7474/db/data/cypher",
    "indexes": "http://localhost:7474/db/data/schema/index",
    "constraints": "http://localhost:7474/db/data/schema/constraint",
    "transaction": "http://localhost:7474/db/data/transaction",
    "node_labels": "http://localhost:7474/db/data/labels",
    "neo4j_version": "2.3.2"
}

但是,当我停止服务器时,通过带有SpatialIndexProvider.SIMPLE_WKT_CONFIG索引的Java加载我的空间数据,然后将其添加到:

        try (Transaction tx = db.beginTx()) {
            Index<Node> index = db.index().forNodes("location", SpatialIndexProvider.SIMPLE_WKT_CONFIG);

            for (String line : lines) {
                String[] columns = line.split(",");
                Node node = db.createNode();
                node.setProperty("wkt", String.format("POINT(%s %s)", columns[4], columns[3]));
                node.setProperty("name", columns[0]);
                index.add(node, "dummy", "value");
            }

            tx.success();
        }

重启后,我收到错误:

2016-02-23 13:44:36.747+0000 ERROR [o.n.k.KernelHealth] setting TM not OK. Kernel has encountered some problem, please perform necessary action (tx recovery/restart) No index provider 'spatial' found. Maybe the intended provider (or one more of its dependencies) aren't on the classpath or it failed to load.

在graph.db中的Messages.log中。我有什么明显的错误吗?

我在Windows 8,Neo4j 2.3.2,Java 8和neo4j-spatial-0.15-neo4j-2.3.0.jar

1 个答案:

答案 0 :(得分:1)

您是否将完整的空间zip解压缩到插件目录中?

否则无法找到一些空间需求的类。