我正在尝试从我本地计算机上运行的java应用程序连接到titan数据库。我的Titan + Cassandra + Rexter安装在远程计算机上运行。
我试图这样做
RexsterClient client = RexsterClientFactory.open("192.168.30.62");
List<Map<String, Object>> results = client.execute("g.v(1).map");
Map<String, Object> map = results.get(0);
System.out.println(map);
但它正在抛出这个异常
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293)
at java.lang.Thread.run(Thread.java:744)
Caused by: com.tinkerpop.rexster.client.RexProException: An error occurred while processing the script for language [groovy]. All transactions across all graphs in the session have been concluded with failure: javax.script.ScriptException: javax.script.ScriptException: groovy.lang.MissingPropertyException: No such property: g for class: Script4
at com.tinkerpop.rexster.client.RexsterClient.execute(RexsterClient.java:220)
at com.tinkerpop.rexster.client.RexsterClient.execute(RexsterClient.java:148)
at Titan.Titan.App.main(App.java:27)
... 6 more
[WARNING] thread Thread[Grizzly(1) SelectorRunner,5,Titan.Titan.App] was interrupted but is still alive after waiting at least 14993msecs
[WARNING] thread Thread[Grizzly(1) SelectorRunner,5,Titan.Titan.App] will linger despite being asked to die via interruption
[WARNING] thread Thread[Grizzly(2) SelectorRunner,5,Titan.Titan.App] will linger despite being asked to die via interruption
[WARNING] thread Thread[Grizzly(3) SelectorRunner,5,Titan.Titan.App] will linger despite being asked to die via interruption
[WARNING] thread Thread[Grizzly(4) SelectorRunner,5,Titan.Titan.App] will linger despite being asked to die via interruption
[WARNING] thread Thread[Grizzly(1),5,Titan.Titan.App] will linger despite being asked to die via interruption
[WARNING] NOTE: 5 thread(s) did not finish despite being asked to via interruption. This is not a problem with exec:java, it is a problem with the running code. Although not serious, it should be remedied.
[WARNING] Couldn't destroy threadgroup org.codehaus.mojo.exec.ExecJavaMojo$IsolatedThreadGroup[name=Titan.Titan.App,maxpri=10]
java.lang.IllegalThreadStateException
at java.lang.ThreadGroup.destroy(ThreadGroup.java:775)
at org.codehaus.mojo.exec.ExecJavaMojo.execute(ExecJavaMojo.java:328)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
当我尝试在rexter控制台中使用Grimlin时,它会抛出
An error occurred while processing the script for language [groovy]. All transactions across all graphs in the session have been concluded with failure: java.util.concurrent.ExecutionException: javax.script.ScriptException: javax.script.ScriptExcepion" groovy.lang.MissingpropertyException: No such property: g for class: Script1
我做错了什么?
答案 0 :(得分:0)
从Gremlin Users邮件列表中的answer获取此问题:
“g”需要以某种方式绑定为脚本引擎中的变量:
List<Map<String, Object>> results =
client.execute("g=rexster.getGraph(\\"tinkergraph\\");g.v(1).map");
Map<String, Object> map = results.get(0);
System.out.println(map.get("name"));
您可以通过传递附加内容将图表自动绑定到“g” RexsterClientFactory的参数:
RexsterClient client = RexsterClientFactory.open("localhost","my-titan-graph")
在上述情况下,“g”将绑定到名为的图形 rexster.xml中的“my-titan-graph”。