groovy에서 트랜잭션을 여는 스크립트를 작성하려고합니다. 현재이 : REST 사이퍼 트랜잭션
def static transaction(statement, params,success, error)
{
def http = new HTTPBuilder('http://localhost:7474')
http.request(POST, JSON) {
uri.path = '/db/data/transaction'
headers.'X-Stream' = 'true'
requestContentType = JSON
body = [ statements : statement , params : params ?: [:] ]
// uri.query = [ param : 'value' ]
response.success = { resp, json ->
if (success) success(json)
else {
println "Status ${resp.statusLine} Columns ${json.columns}\nData: ${json.data}"
}
}
response.failure = { resp, message ->
def result=[status:resp.statusLine.statusCode,statusText:resp.statusLine.reasonPhrase]
result.headers = resp.headers.collect { h -> [ (h.name) : h.value ] }
result.message = message
if (error) {
error(result)
} else {
println "Status: ${result.status} : ${result.statusText} "
println 'Headers: ${result.headers}'
println 'Message: ${result.message}'
}
}
}
}
transaction("start n=node(*) return n",[id:56981],{ println "Success: ${it}" },{ println "Error: ${it}" })
그러나 나는 응답에 다음과 같은 오류가 점점 오전 :
Success: [commit:http://localhost:7474/db/data/transaction/4/commit, results:[], errors:[[code:40001, status:INVALID_REQUEST_FORMAT, message:Unable to deserialize request. Expected [START_OBJECT, FIELD_NAME, START_ARRAY], found [START_OBJECT, FIELD_NAME, VALUE_STRING].]]]
생각을? 감사!
사용하는 이정표? – Nicholas
현재 2.0.0-M5 – Badmiral
사용 디버깅을 위해 응용 프로그램과 Neo4j 사이에 프록시를 넣는 것이 유용 할 수 있습니다. http://www.charlesproxy.com/이 유용합니다. 이렇게하면 와이어를 통해 진행되는 작업을 정확히 검사 할 수 있습니다. –