Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
11-12-2020 10:49 AM
I have installed below ,
Try to import shape file to neo4j through cypher query,
call spatial.importShapefile("file:///home/.local/share/neo4j-relate/dbmss/dbms-3ad2b2c1-94c6-4482-8b1f-bcfe3f413670/import/cb_2019_us_state_500k.shp")
but it produces the error : Failed to invoke procedure spatial.importShapefile
: Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.geotools.data.DataUtilities
how to fix this? Can anyone tell to solve this issues?
11-19-2020 05:02 AM
Do you have any other plugins installed in Neo4j? Sometimes there are conflicts between third party dependencies of those plugins. You could also check the neo4j.log and debug.log files for any errors when importing plugins and any further errors or stack trace when running the procedure that failed.
11-19-2020 06:11 AM
Thanks for reply craig,
I havent not installed any plugin, just create one database and add the "spatial plugin" to the plugin folder, but it gives the error.
11-19-2020 08:27 AM
I have two remaining theories. One is that perhaps this is an issue specific to desktop, which I've never tested, and the other is that it is an issue specific to your shapefile. Is there any chance you can share the shapefile with me so I can test it locally?
11-21-2020 08:10 AM
Thanks for your reply, Yes I have tried to import shapefile in neo4j Desktop using cypher Query, and have tried to upload my shapefile but it couldnt upload .. (here attachment support only jpeg,pdf..)
12-28-2020 06:45 AM
You could connect to me directly at neo4j-users.slack.com and upload the shapefile there for me to try out.
12-29-2020 04:36 AM
Hello @esakkiammal1036,
Not sure, if this is resolved, but I was able to import the shapefile into the database.
My Configuration ->
Neo4j 3.5.20
Java Version 8
neo4j-spatial-0.26.2
Source of the shapefile -> Index of /geo/tiger/GENZ2019/shp ( i guess you are also using the same file). Make sure all the file like prj, dbf are on the same directory. (Its bin of neo4j)
Can you check if whitelisted and unrestricted spatial.* plugins in your configuration.
dbms.security.procedures.unrestricted=algo.*,apoc.*,spatial.*
dbms.security.procedures.whitelist=algo.*,apoc.*,spatial.*
> Directories in use:
> home: /root/neo4j-enterprise-3.5.20
> config: /root/neo4j-enterprise-3.5.20/conf
> logs: /root/neo4j-enterprise-3.5.20/logs
> plugins: /root/neo4j-enterprise-3.5.20/plugins
> import: /root/neo4j-enterprise-3.5.20/import
> data: /root/neo4j-enterprise-3.5.20/data
> certificates: /root/neo4j-enterprise-3.5.20/certificates
> run: /root/neo4j-enterprise-3.5.20/run
> Starting Neo4j.
> WARNING: Max 1024 open files allowed, minimum of 40000 recommended. See the Neo4j manual.
> 2020-12-29 12:13:14.593+0000 INFO ======== Neo4j 3.5.20 ========
> 2020-12-29 12:13:14.603+0000 INFO Starting...
> 2020-12-29 12:13:15.666+0000 INFO Initiating metrics...
> 2020-12-29 12:13:15.667+0000 WARN Exporting tool have been configured to report values to but no metrics were enabled. Disabling kernel metrics extension.
> 2020-12-29 12:13:30.513+0000 INFO Bolt enabled on 0.0.0.0:7687.
> 2020-12-29 12:13:33.455+0000 INFO Started.
> 2020-12-29 12:13:33.619+0000 INFO Mounted REST API at: /db/manage
> 2020-12-29 12:13:33.679+0000 INFO Loaded server plugin "SpatialPlugin"
> 2020-12-29 12:13:33.681+0000 INFO GraphDatabaseService.addSimplePointLayer: add a new layer specialized at storing simple point location data
> 2020-12-29 12:13:33.681+0000 INFO GraphDatabaseService.addNodesToLayer: adds many geometry nodes (about 10k-50k) to a layer, as long as the nodes contain the geometry information appropriate to this layer.
> 2020-12-29 12:13:33.681+0000 INFO GraphDatabaseService.findClosestGeometries: search a layer for the closest geometries and return them.
> 2020-12-29 12:13:33.681+0000 INFO GraphDatabaseService.addGeometryWKTToLayer: add a geometry specified in WKT format to a layer, encoding in the specified layers encoding schemea.
> 2020-12-29 12:13:33.682+0000 INFO GraphDatabaseService.findGeometriesWithinDistance: search a layer for geometries within a distance of a point. To achieve more complex CQL searches, pre-define the dynamic layer with addCQLDynamicLayer.
> 2020-12-29 12:13:33.682+0000 INFO GraphDatabaseService.addEditableLayer: add a new layer specialized at storing generic geometry data in WKB
> 2020-12-29 12:13:33.682+0000 INFO GraphDatabaseService.addNodeToLayer: add a geometry node to a layer, as long as the node contains the geometry information appropriate to this layer.
> 2020-12-29 12:13:33.682+0000 INFO GraphDatabaseService.addCQLDynamicLayer: add a new dynamic layer exposing a filtered view of an existing layer
> 2020-12-29 12:13:33.682+0000 INFO GraphDatabaseService.getLayer: find an existing layer
> 2020-12-29 12:13:33.682+0000 INFO GraphDatabaseService.findGeometriesInBBox: search a layer for geometries in a bounding box. To achieve more complex CQL searches, pre-define the dynamic layer with addCQLDynamicLayer.
> 2020-12-29 12:13:33.682+0000 INFO GraphDatabaseService.findGeometriesIntersectingBBox: search a layer for geometries intersecting a bounding box. To achieve more complex CQL searches, pre-define the dynamic layer with addCQLDynamicLayer.
> 2020-12-29 12:13:35.085+0000 INFO Remote interface available at http://localhost:7474/
**> info | inserted geometries: 56**
**> info | elapsed time in seconds: 0.329**
> info | inserted geometries: 56
> info | elapsed time in seconds: 0.329
> neo4j> match (n) return count(n);
> +----------+
> | count(n) |
> +----------+
> | 0 |
> +----------+
>
> 1 row available after 152 ms, consumed after another 0 ms
> neo4j>
> neo4j> call spatial.importShapefile("cb_2019_us_state_500k.shp");
> info | inserted geometries: 56
> info | elapsed time in seconds: 0.338
> +-------+
> | count |
> +-------+
> | 56 |
> +-------+
>
> 1 row available after 978 ms, consumed after another 0 ms
> neo4j> match (n) return count(n);
> +----------+
> | count(n) |
> +----------+
> | 60 |
> +----------+
>
> 1 row available after 27 ms, consumed after another 1 ms
neo4j> call db.labels();
+-----------------+
| label |
+-----------------+
| "ReferenceNode" |
+-----------------+
match (n) return (n) limit 2;
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| n |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| (:ReferenceNode {name: "spatial_root"}) |
| ({index_class: "org.neo4j.gis.spatial.index.LayerRTreeIndex", gtype: 6, layercrs: "GEOGCS[\"GCS_North_American_1983\",
DATUM[\"D_North_American_1983\",
SPHEROID[\"GRS_1980\", 6378137.0, 298.257222101]],
PRIMEM[\"Greenwich\", 0.0],
UNIT[\"degree\", 0.017453292519943295],
AXIS[\"Longitude\", EAST],
AXIS[\"Latitude\", NORTH]]", ctime: 1609244499209, layerprops: ["ID", "STATEFP", "STATENS", "AFFGEOID", "GEOID", "STUSPS", "NAME", "LSAD", "ALAND", "AWATER"], geomencoder: "org.neo4j.gis.spatial.WKBGeometryEncoder", layer_class: "org.neo4j.gis.spatial.EditableLayerImpl", layer: "cb_2019_us_state_500k"}) |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Let me or the community forums group know if you need further more assistance.
12-29-2020 10:04 AM
Last week I tried again to port the spatial library to Neo4j 4.x, and it was a much bigger job than expected, largely due to the change in transaction handling. While there is still more work to do before this is complete, I did notice the same error you got:
NoClassDefFoundError: Could not initialize class org.geotools.data.DataUtilities
And every time I got this error it was due to running Geotools libraries in newer Java. When I ran in Java 8, I did not see this error, but in Java 11 (which Neo4j 4.x requires) I get the error. I've seen reports that this is an issue with older Geotools that requires upgrading to the very latest version. Since the library uses very old version 14, and the newer versions are 22, this is quite a big jump.
Anyway, my current impression is that it is likely you are still using a newer Java, not Java8.
All the sessions of the conference are now available online