2014-10-15 3 views
0

단일 함수 filterOver가 포함 된 /tmp/scripts/a.gremlin이라는 스크립트가 있습니다.Rexster는 스크립트에 정의 된 함수에 값을 전달합니다.

def filterOver(age) { 
    return g.V.filter{it.age > age} 
} 

내 rexster 구성 conf/rexster-cassandra.xml에 올바른 확장 섹션이 있습니다. 거짓 : 나는

http://localhost:8182/graphs/graph/tp/gremlin?script=filterOver(30)&load=[a] 

을 실행할 때

<extensions> 
    <allows> 
    <allow>tp:gremlin</allow> 
    </allows> 
    <extension> 
    <namespace>tp</namespace> 
     <name>gremlin</name> 
     <configuration> 
     <scripts>/tmp/scripts</scripts> 
     <allow-client-script>true</allow-client-script> 
     <cache-scripts>true</cache-scripts> 
     </configuration> 
    </extension> 
</extensions> 

는 내가 예외

{ "성공"을 얻을 이제

bin/titan.sh start 

을 실행하여 내 rexster 서버를 시작했습니다 "api": { "description": "임시 그렘 름을 평가하십시오 ","parameters ": {"rexster.showTypes ":"기본 데이터 유형이 false 인 요소의 속성을 으로 표시합니다. ","load ":"저장된 목록 " (스크립트가 지정되지 않은 경우 인수의 마지막 스크립트는 값을 반환합니다. ","returnTotal ":"true로 설정하면 전체 결과 집합은 "기본 언어는 false입니다.", "language": "사용할 gremlin 언어 (기본 값은 )", "params": " 스크립트에 바인딩 할 매개 변수의 맵", " "script": "Gremlin 스크립트가 으로 평가되었습니다.", "rexster.returnKeys": " 으로 반환하는 요소 속성 키 배열 (기본값은 ~입니다. 모든 요소를 ​​반환합니다. ) ","rexster.offset.start ":"반환 될 데이터가 인 페이징 된 세트의 인덱스 시작 ","rexster.offset.end ":"페이징 된 세트의 끝 인덱스 의 데이터 수 은 "}}"메시지를 반환 ":" ","오류 ":"javax.script.ScriptException : groovy.lang.MissingMethodException : 방법 없음 서명 : com.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine. filterOver()는 인수 타입에 적용 가능하다 : (java.lang.Integer의) 값 [30] "}

제가

또한
http://localhost:8182/graphs/graph/tp/gremlin?params={%22age%22:30}&script=filterOver(age)&load=[a] 
,617 시도했다

심지어

http://localhost:8182/graphs/graph/tp/gremlin?age=30&script=filterOver(age)&load=[a] 

따라서 기능에 매개 변수를 전달하는 올바른 방법은 무엇입니까 다음?

답변

1

귀하의 특정 구성을 시도하고 그것은 나를 위해 작동합니다. 처럼 귀하의 rexster.xml 구성이 올바르게 보입니다. 해당 스크립트를 유지하는 데 문제가없는 것 같습니다 /tmp/scripts. 컬이 특정 호출은 나를 위해 일한 : 컬 노력하는 것은 당신을 위해 작동하지 않습니다

curl "http://localhost:8182/graphs/tinkergraph/tp/gremlin?script=filterOver(30)&load=\[a\]" 

경우 나는 당신의 장비를 단순화하고, Rexster 자체의 단지 다운로드를 시도 제안했다. 작동하는지 확인한 다음 타이탄 서버로 다시 시뮬레이션하십시오.

관련 문제