thinkaurelius / neo4j-gremlin-plugin

Gremlin for Neo4jServer 2.x
http://thinkaurelius.com
Apache License 2.0
30 stars 14 forks source link

Missing TinkerGraph's jar in Gremlin 3 plug in #14

Open dseguy opened 8 years ago

dseguy commented 8 years ago

Hi

I compiled the plug-in on OSX, for Gremlin 3. I installed it on Neo4j 2.3.2.

I tried the following query, in order to test the Subgraph step.

subGraph = g.E().has("atom", "String").subgraph('String').cap('String').next();

I get this error : Gremlin error : javax.script.ScriptException: java.lang.RuntimeException: GraphFactory could not find [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph] - Ensure that the jar is in the classpath

I don't think I should get such an error for such a simple query.

Follow up : If I remove '.cap('String').next()' and replace it with 'iterate()' it does something. Later, I can't access the subgraph :

sg = subGraph.traversal(standard()); sg.V().count();

I get this error : Gremlin error : javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.traversal() is applicable for argument types: (org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource$Builder) values: [org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource$Builder@798d41e7]

Is this a problem in my queries or in the gremlin plugin ? Damien.

dkuppitz commented 8 years ago

The subgraph() step uses TinkerGraph when it build the subgraph. Did you try to also put the tinkergraph-gremlin-*.jar into the plugin directory?

dseguy commented 8 years ago

Hi Daniel,

Thanks for your help :) I cloned the titandb repository, built it with maven (successfully). Then, I found tinkergraph-gremlin-3.0.1-incubating.jar which I moved to plugins/gremlin/ That was the only jar with tinkergraph and gremlin I could find.

Now, I get this in the neo4j logs : 2016-03-29 14:55:26.590+0200 WARN java.lang.NoClassDefFoundError: Could not initialize class org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph

Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph

Obviously, I didn't find the right tinkergraph Jar or put it in the right folder. Any hint?

MarcoAbi commented 8 years ago

Hello dseguy.

Supposing that you modified the config files as described in the wiki. You should put in the plugins/gremlin folder all the jars that the project depends from. Try to copy/paste all the jars that the build produced (you may find them in target folder). Hope it helps

Best Marco.

dkuppitz commented 8 years ago

You'll need at least 3.1.1. Version 3.0.1 didn't support Neo4j 2.3.2. You should build TinkerPop to get that jar file:

https://github.com/apache/incubator-tinkerpop/tree/3.1.1-incubating

dseguy commented 8 years ago

Tinkerpop != titandb, of course. Lemme try this.