【问题标题】:Gremlin and FramesGremlin 和框架
【发布时间】:2014-04-17 03:14:17
【问题描述】:

我刚刚尝试从 gremlin 控制台在 Frames 上运行简单的演示:

TinkerGraph graph = TinkerGraphFactory.createTinkerGraph();

FramedGraphFactory factory = new FramedGraphFactory(new GremlinGroovyModule());

添加import com.tinkerpop.frames.*; 后(是的,tinkerpop 框架在我的类路径中) 但控制台无法识别 FramedGraphFactory 类。

事实上,如果我运行

gremlin> show classes

命令,它回复没有加载任何内容。有什么线索吗?

谢谢

PS 详细信息:我在 Ubuntu 上,下载了 gremlin-groovy-2.4.0。

我也下载了frames jar,并设置了classpath:

echo $CLASSPATH

/home/dev/frames-2.5.0.jar

然后启动 gremlin 并导入框架:

import com.tinkerpop.frames.*

终于

TinkerGraph graph = TinkerGraphFactory.createTinkerGraph();

FramedGraphFactory factory = new FramedGraphFactory(new GremlinGroovyModule()); 

产生:

groovysh_evaluate: 50: unable to resolve class FramedGraphFactory 
 @ line 50, column 30.
   FramedGraphFactory factory = new FramedGraphFactory(new GremlinGroovyModule()); //(1) Factories should be reused for performance and memory conservation.
                                ^
groovysh_evaluate: 50: unable to resolve class GremlinGroovyModule 
 @ line 50, column 53

.

【问题讨论】:

  • 您能否发布您的 REPL 会话(即您输入的内容和返回的错误)?
  • 嗨,斯蒂芬,感谢您的介入!上面已经添加了详细信息

标签: gremlin tinkerpop


【解决方案1】:

试试这个:

gremlin> Grape.grab([group:"com.tinkerpop",module:"frames",version:"2.4.0"])
==>null
gremlin> graph = TinkerGraphFactory.createTinkerGraph()                     
==>tinkergraph[vertices:6 edges:6]
gremlin> import com.tinkerpop.frames.*                                      
==>import com.tinkerpop.gremlin.*
==>import com.tinkerpop.gremlin.java.*
==>import com.tinkerpop.gremlin.pipes.filter.*
...
==>import groovy.grape.Grape
==>import com.tinkerpop.frames.*
gremlin> import com.tinkerpop.frames.modules.gremlingroovy.*                
==>import com.tinkerpop.gremlin.*
==>import com.tinkerpop.gremlin.java.*
==>import com.tinkerpop.gremlin.pipes.filter.*
==>import com.tinkerpop.gremlin.pipes.sideeffect.*
...
gremlin> factory = new FramedGraphFactory(new GremlinGroovyModule());       
==>com.tinkerpop.frames.FramedGraphFactory@645c1312

如果您已经复制了 jar,请在开始时忽略 Grape,但如果您复制,请确保您拥有所有 Frames 依赖项,而不仅仅是 Frames jar 本身(Grape 对您隐藏了这些东西)。

【讨论】:

  • 是的,它有效!所以看起来问题是我没有下载框架 jar 文件的所有依赖项(从在线文档中不太清楚......)。无论如何,谢谢!
  • 更新:它确实有效,因为它创建了 framedGraph 对象。但是,当我添加语句 Person person=framedGraph.getVertex(1, Person.class); groovysh_evaluate: 52: 无法解析类人
  • 我尝试使用 import >import com.tinkerpop.frames.domain.classes.* 这是 Person 类应该在的位置,但无济于事。有什么线索吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-24
  • 1970-01-01
  • 2012-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多