2

我在发出 curl 请求时得到了有效的响应:

bin/gremlin-server.bat conf/gremlin-server-rest-modern.yaml

curl "http://localhost:8182?gremlin=100-1"
curl "http://localhost:8182?gremlin=g.V()"

但通过浏览器我得到以下按摩:

{"message":"no gremlin script supplied"}

也尝试如下但没有结果:

http://localhost:8182/gremlin?script=g.V()
http://localhost:8182/graphs/tinkergraph/tp/gremlin?script=g.traversal().V()
http://localhost:8182/graphs/tinkergraph/tp/gremlin?script=g.V()

关于什么是通过浏览器传递脚本的有效方式的任何建议。

4

4 回答 4

2

我不确定这到底是不是一个“错误”,但 Gremlin Server 并不尊重非常复杂ACCEPT的标头。例如,当我尝试在 Chrome 中解析您的前两个 URL 之一时,我得到:

{
  message: "no serializer for requested Accept header: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
}

默认情况下,Gremlin Server 不支持ACCEPT. 如果浏览器请求application/json或只是*.*它会工作。请注意,*.*quality 存在0.8,但 Gremlin Server 并没有以这种方式解析标头来确定这一点。结果,它找不到序列化程序来正确处理它。

我所知道的浏览器没有解决方法。我创建了一个问题来解决这个问题:

https://issues.apache.org/jira/browse/TINKERPOP3-752

于 2015-06-29T11:43:14.307 回答
1

当我忘记在启动 gremlin-server 之前启动 cassandra 时,我也看到了这个错误。

于 2015-12-07T13:57:14.143 回答
1

我的问题是由于请求中存在空格。

这行得通;

curl http://localhost:8182/?gremlin="g.V().has('name','foody')"

但这没有;

curl http://localhost:8182/?gremlin="g.V().has('name', 'foody')"

尝试从您的设备中删除它们,它们应该可以工作。

于 2017-01-11T08:20:30.057 回答
0

I found the answer thanks to your question, so I will pitch for the right answer for @stacey-morgan: You queried on the CLI:

curl "http://localhost:8182?gremlin=100-1"

Then you may have queried (as it is not clear from your question)

http://localhost:8182/gremlin?script=100-1

Or the others you have done, just as I was doing:

http://localhost:8182/gremlin?script=g.V()

You would get the error message. The correct way of doing it just paste the content of the "" from the curl command. So

http://localhost:8182?gremlin=100-1

Then similarly for your other queries:

http://localhost:8182/?gremlin=g.V()
http://localhost:8182/?gremlin=g.traversal().V()

Note: trailing slash should be there though it works without it on my FF. That is HTTP.

Using: Ubuntu & Titan1.0.0-hadoop1.

于 2016-02-17T11:10:06.280 回答