0

次のコードを使用して、ノードを正常にマージしました。

session = cypher.Session('http://192.168.56.20:7474/db/data/')
txa = session.create_transaction()
txa.append("""
  MERGE (frame:FRAME {timestamp:{props}.ts})
  ON CREATE SET frame:FIRST_FRAME
  RETURN frame
""", props)
txa.commit()
result, = txa.commit()
frame, = result[0]

ログファイルは次のようになります。

INFO:py2neo.packages.httpstream.http:>>> POST http://192.168.56.20:7474/db/data/transaction/commit [910]
DEBUG:py2neo.packages.httpstream.http:>>> Host: 192.168.56.20:7474
DEBUG:py2neo.packages.httpstream.http:>>> Content-Type: application/json
DEBUG:py2neo.packages.httpstream.http:>>> X-Stream: true;format=pretty
DEBUG:py2neo.packages.httpstream.http:>>> User-Agent: py2neo/1.6.1 HTTPStream/1.1.0          Python/2.7.5-final-0 (darwin)
INFO:py2neo.packages.httpstream.http:<<< 200 OK [chunked]
DEBUG:py2neo.packages.httpstream.http:<<< transfer-encoding: chunked
DEBUG:py2neo.packages.httpstream.http:<<< access-control-allow-origin: *
DEBUG:py2neo.packages.httpstream.http:<<< server: Jetty(9.0.5.v20130815)
DEBUG:py2neo.packages.httpstream.http:<<< content-type: application/json
DEBUG:py2neo.packages.httpstream.http:<<< content-encoding: UTF-8

返される結果変数は次のとおりです。

[Record(columns=(u'frame',), values=(Node('http://0.0.0.0:7474/db/data/node/24'),))]

間違った uri (0.0.0.0) に注意してください

返されたノード インスタンスを使用しようとすると、接続例外がスローされます。すなわち:

frame.remove_labels('FIRST_FRAME')

py2neo.packages.httpstream.http.SocketError: Connection refused

ログに記録されたトレースから、間違ったサーバーからデータを取得しようとしたことがわかります。

INFO:py2neo.packages.httpstream.http:>>> GET http://0.0.0.0:7474/db/data/node/24/properties

私は何を間違っていますか?

4

2 に答える 2

2

それは確かに奇妙な反応です。コードのどこにも書き換え関数を使用していないと思いますか? その場合は、その構成を確認してください。そうでない場合は、他にもいくつか試すことができます。

  1. サーバーの前にプロキシとして機能するレイヤーがありますか? これは、認証などを適用するためによく使用されます。その場合は、これをバイパスしてサーバーに直接アクセスして、まだ問題が発生するかどうかを確認してください。
  2. コマンド ラインから cURL を使用して同じ要求を実行し、そのままの応答を確認してください。これは、0.0.0.0 がどのレベルで置き換えられているかを確認するのに役立ちます。
于 2014-01-17T09:21:30.330 に答える
0

これと同じ問題に遭遇しましたが、それは Neo4j サーバー構成が原因であることが判明しました。

http://docs.neo4j.org/chunked/stable/server-configuration.html

私が持っていた:

#allow any client to connect
org.neo4j.server.webserver.address=0.0.0.0

これは、Py2Neo から使用する実際の IP アドレスである必要がありました。

#allow any client to connect
org.neo4j.server.webserver.address=real-ip-here (192.168.56.20 in your example)
于 2014-09-30T03:59:08.447 に答える