最近 Neo4j を利用する機会が出来たので、ひさしぶりに cl-neo4j を利用再開しました。
自宅の Mac で思い出しながら動作確認して「あー使えるわー」程度の確認をしました。
その後職場で「あー使えるわー」を再現しようとしたんですが、全然ダメでした。
(1) まず環境
- OS : Windows7 64bit
- CL : Clozure CL (バージョン忘れた)
- cl-neo4j : https://github.com/yanqirenshi/cl-neo4j 自分とこにフォークしたやつ。(ほとんど変えてないよ)
- Neo4j : 2.1.4 (たぶん)
(2) Neo4j のインストールと稼動確認
インストールは適当にすませ、Neo4j Server を起動させ、browser の起動を確認。 Node を一つ作り、Web Browse(Chrome) から REST-API の node - get を実行し問題ないことを確認。
URI: http://my-host-name:7474/db/data/node/0
この段階で「あー使えるわー」は目前とニラみましたが、世の中アマくありませんでした。
(3) ダメだったところ1: 503 のエラーが発生。
slime から drakma で REST-API の node - get を実行 するも 503 が発生。
どうも uri の localhost が怪しいとニラんでhost名に変更。=> 結果NG
サーバーの設定でコレかなポイントを見つけました。 コメントアウトされていたので、コメントを外し、値にサーバーの host名を設定。
- ファイル: Server configuration
- プロパティ: org.neo4j.server.webserver.address
- 設定値: サーバーの host名
この設定後、再度REST-APIをコールすると 411 にエラーが変化しました。
なんとなく変更は効いてそうなので、次へ進むことにしました。
ちなみに、以後 サーバーのhost名 or ip でアクセスする必要があります。 localhost ではアクセスできません。複数指定可能なのかな。。。マニュアル見ないと。
(4) ダメだったところ1: 411 のエラーが発生。
どこが悪いのかさっぱりわからない。
drakma で (setf drakma:header-stream standard-output) して、ヘッダの内容をダンプ。
Chorme で成功しているやつのヘッダの内容と比較すると、drakma のヘッダは以下の二つの値が設定されていました。 * :content * :content-type
これがアヤしいとニラんで、drakma::send-request の中の :content , :content-type を指定している部分をコメントアウト。
REST-API を再挑戦すると成功しました。
その後、一通りのAPIをうごかして、「あー使えるわー」の再現に成功しました。
めでたし、めでたし。。。じゃないので今度の休みにでも調べよ。
以上。