2017-06-08 4 views
1

Ich versuche Tinker Pop 3 [Orient-DB 3.0 Snapshot] -Anforderungen über die Java-API auszugeben. Ich verwende OCommandGremlin wie folgt [sollte 2 Vs übereinstimmen]: >Verwendung von OrientDB 3.0.0m1 Java-API mit TinkerPop 3

OGremlinHelper.global().create(); 
OCommandRequest req = graph.command(new OCommandGremlin("g.V().has('name', 'fast').both()")); 
Iterable<Vertex> result2 = req.execute(); 

....

Es scheint für TinkerPop 2.x Klasse com.tinkerpop.gremlin.groovy.jsr223 zu suchen .GremlinGroovyScriptEngine

bekomme ich folgende Fehlermeldung:

WARNING: $ANSI{green {db=demodb}} GREMLIN language not available (not in classpath) 
Exception in thread "main" java.lang.NoClassDefFoundError: com/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngine 
    at com.orientechnologies.orient.graph.gremlin.OGremlinEngineThreadLocal.get(OGremlinEngineThreadLocal.java:61) 
    at com.orientechnologies.orient.graph.gremlin.OGremlinHelper.getGremlinEngine(OGremlinHelper.java:165) 
    at com.orientechnologies.orient.graph.gremlin.OGremlinHelper.execute(OGremlinHelper.java:83) 
    at com.orientechnologies.orient.graph.gremlin.OGremlinHelper.execute(OGremlinHelper.java:75) 
    at com.orientechnologies.orient.graph.gremlin.OCommandGremlinExecutor.execute(OCommandGremlinExecutor.java:59) 
    at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:2480) 
    at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:2425) 
    at com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:68) 
    at com.tinkerpop.blueprints.impls.orient.OrientGraphCommand.execute(OrientGraphCommand.java:49) 
    at BasicGremlinDriver.main(BasicGremlinDriver.java:202) 
Caused by: java.lang.ClassNotFoundException: com.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 

Meine maven-Datei wird wie folgt dar:

<dependencies> 
    <dependency> 
     <groupId>com.orientechnologies</groupId> 
     <artifactId>orientdb-graphdb</artifactId> 
     <version>3.0.0m1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.orientechnologies</groupId> 
     <artifactId>orientdb-spatial</artifactId> 
     <version>3.0.0m1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.orientechnologies</groupId> 
     <artifactId>orientdb-lucene</artifactId> 
     <version>3.0.0m1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tinkerpop</groupId> 
     <artifactId>gremlin-core</artifactId> 
     <version>3.2.4</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tinkerpop</groupId> 
     <artifactId>tinkergraph-gremlin</artifactId> 
     <version>3.2.4</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tinkerpop</groupId> 
     <artifactId>gremlin-groovy</artifactId> 
     <version>3.2.4</version> 
    </dependency> 

....

ich auch $/META-INF/services/javax.script.ScriptEngineFactory zu org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngineFactory gesetzt, die der Tinker Pop 3 Version und ich kann es auf meinem Klassenpfad finden.

Feedback geschätzt.

Dank

JGZ

Antwort

2

Wenn Sie es Apache Gremlin spielen wollen, loszuwerden

<dependency> 
    <groupId>com.orientechnologies</groupId> 
    <artifactId>orientdb-graphdb</artifactId> 
    <version>3.0.0m1</version> 
</dependency> 

und fügen:

<dependency> 
    <groupId>com.orientechnologies</groupId> 
    <artifactId>orientdb-gremlin</artifactId> 
    <version>3.0.0m1</version> 
</dependency> 

Orientdb Graph bindet an ThinkerPop 2.6: Es ist für die Abwärtskompatibilität ist . Die Unterstützung für Apache Gremlin 3.x wird durch das neue Artefakt bereitgestellt. Achten Sie auf Pakete Name, das neue Paket ist:

org.apache.tinkerpop.gremlin.orientdb 

beachten Sie, dass in 3.0 bieten wir eine native Multimodell-API, die ohne zusätzliche Module Arbeiten mit Grafik erlaubt:

http://orientdb.com/docs/3.0.x/java/Java-MultiModel-API.html

+0

Danke, die Maven Änderung funktionierte und ich kann jetzt auf Gremlin 3.x zugreifen. – zambra33

+0

Gut zu wissen. Bitte upvote :) –

0
diese

Versuchen:

<dependency> 
    <groupId>com.tinkerpop.gremlin</groupId> 
    <artifactId>gremlin-groovy</artifactId> 
    <version>2.6.0</version> 
</dependency> 

Hoffe, es hilft.

Grüße

Verwandte Themen