使用neo4j的Gremlin服务器

使用neo4j的Gremlin服务器,neo4j,gremlin,gremlin-server,Neo4j,Gremlin,Gremlin Server,我正试着用小叮当。我无法使用neo4j启动gremlin服务器 文件上说 请注意,TinkerPop在其发行版中不包含Neo4j依赖项。要使用此文件,请确保使用Gremlin-Server.sh-i org.apache.tinkerpop Neo4j Gremlin 3.y.z将Neo4j依赖项安装到Gremlin服务器的路径中 我已经使用:install安装了neo4j gremlin,因为据说-I已被弃用 尽管如此,我还是在下面的命令中得到了以下错误 .\bin\gremlin-serve

我正试着用小叮当。我无法使用neo4j启动gremlin服务器

文件上说

请注意,TinkerPop在其发行版中不包含Neo4j依赖项。要使用此文件,请确保使用Gremlin-Server.sh-i org.apache.tinkerpop Neo4j Gremlin 3.y.z将Neo4j依赖项安装到Gremlin服务器的路径中

我已经使用:install安装了neo4j gremlin,因为据说-I已被弃用

尽管如此,我还是在下面的命令中得到了以下错误

.\bin\gremlin-server.bat .\conf\gremlin-server-neo4j.yaml
错误

[WARN]DefaultGraphManager-无法实例化在[conf/neo4j empty.properties]处配置的图形[Graph],并且在Gremlin服务器中将不可用。GraphFactory消息:GraphFactory找不到[org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph]-确保jar位于类路径中
java.lang.RuntimeException:GraphFactory找不到[org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph]-请确保jar位于类路径中
位于org.apache.tinkerpop.gremlin.structure.util.GraphFactory.open(GraphFactory.java:63)
位于org.apache.tinkerpop.gremlin.structure.util.GraphFactory.open(GraphFactory.java:104)
位于org.apache.tinkerpop.gremlin.server.util.DefaultGraphManager.lambda$new$0(DefaultGraphManager.java:57)
位于java.util.LinkedHashMap$LinkedEntrySet.forEach(未知源)
位于org.apache.tinkerpop.gremlin.server.util.DefaultGraphManager。(DefaultGraphManager.java:55)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源)
位于java.lang.reflect.Constructor.newInstance(未知源)
位于org.apache.tinkerpop.gremlin.server.util.ServerGremlinExecutor.(ServerGremlinExecutor.java:105)
位于org.apache.tinkerpop.gremlin.server.util.ServerGremlinExecutor.(ServerGremlinExecutor.java:84)
位于org.apache.tinkerpop.gremlin.server.GremlinServer。(GremlinServer.java:111)
位于org.apache.tinkerpop.gremlin.server.GremlinServer.main(GremlinServer.java:355)
[信息]ServerGremlinExecutor-初始化的Gremlin线程池。池中以模式gremlin命名的线程-*
线程“main”java.lang.IllegalStateException中的异常:java.lang.ClassNotFoundException:org.apache.tinkerpop.gremlin.neo4j.jsr223.Neo4jGremlinPlugin
位于org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor.initializeGremlinScriptEngineManager(GremlinExecutor.java:444)
位于org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor.(GremlinExecutor.java:103)
位于org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor.(GremlinExecutor.java:72)
位于org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor$Builder.create(GremlinExecutor.java:586)
位于org.apache.tinkerpop.gremlin.server.util.ServerGremlinExecutor.(ServerGremlinExecutor.java:157)
位于org.apache.tinkerpop.gremlin.server.util.ServerGremlinExecutor.(ServerGremlinExecutor.java:84)
位于org.apache.tinkerpop.gremlin.server.GremlinServer。(GremlinServer.java:111)
位于org.apache.tinkerpop.gremlin.server.GremlinServer.main(GremlinServer.java:355)
原因:java.lang.ClassNotFoundException:org.apache.tinkerpop.gremlin.neo4j.jsr223.neo4jgremlin插件
位于java.net.URLClassLoader.findClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
位于sun.misc.Launcher$AppClassLoader.loadClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(未知源)
位于org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor.initializeGremlinScriptEngineManager(GremlinExecutor.java:407)
... 还有7个

:install
是控制台命令


install
是服务器命令<代码>-i仍然有效。

作为gremlin python教程github项目的提交者,我的答案是查看

剧本

  version=3.4.3
  plugin=neo4j-gremlin
  gsd=apache-tinkerpop-gremlin-server-${version}
  if [ ! -d $gsd/ext/$plugin ]
  then
    color_msg $blue "installing plugin $plugin"
    $gsd/bin/gremlin-server.sh install org.apache.tinkerpop $plugin $version
  else
    color_msg $green "$plugin plugin already installed"
  fi
  color_msg $blue "starting neo4j gremlin-server ..."
  conf=$(realpath $gsd/conf/gremlin-server-neo4j.yaml)
  $gsd/bin/gremlin-server.sh $conf
在Neo4J部分,您可以找到解释


请不要检查ext目录是否包含安装(请参阅上面评论中Stephen Mallette的问题)。

您的
GREMLIN\u服务器\u安装/ext
目录中有什么?你看到neo4j目录和相关文件了吗?另外,您提到使用
gremlin server.sh
,但随后还指定使用
.bat
启动-这是windows环境还是其他什么?我使用的是windows环境。我在/ext文件夹中找不到neo4j目录。但是这些文件安装在Gremlin控制台中。修复方法是简单地从控制台目录复制到服务器目录。谢谢你的指导。你是说
gremlin.bat:install
将neo4j JAR放在
gremlin\u SERVER\u install/ext
以外的目录中?
gremlin-SERVER.bat:install
根本不起作用。这就是问题所在。这就是为什么我不能将neo4j依赖项安装到gremlin服务器中。所以,我试着从控制台端安装neo4j,结果成功了。然后我将neo4j文件夹从gremlin控制台复制到服务器
  version=3.4.3
  plugin=neo4j-gremlin
  gsd=apache-tinkerpop-gremlin-server-${version}
  if [ ! -d $gsd/ext/$plugin ]
  then
    color_msg $blue "installing plugin $plugin"
    $gsd/bin/gremlin-server.sh install org.apache.tinkerpop $plugin $version
  else
    color_msg $green "$plugin plugin already installed"
  fi
  color_msg $blue "starting neo4j gremlin-server ..."
  conf=$(realpath $gsd/conf/gremlin-server-neo4j.yaml)
  $gsd/bin/gremlin-server.sh $conf