2015-01-14 2 views
1

Grails의 Groovy에 REST 서비스가있다. 데이터를 취하여 변환하는 기본 서비스. 전달되는 데이터에 정방향 또는 역방향 슬래시가있는 경우를 제외하고는 정상적으로 작동합니다. 이러한 경우 브라우저는 데이터를 기반으로 디렉토리로 이동하려고 :슬래시를 포함하는 Groovy REST URL 매핑

이 잘
로컬 호스트/이송 /지도/321/64/네 번째 < < 작동 (321) (64) 네 번째 < < < 로컬 호스트/이송 /지도/<는 로컬 호스트/이송 /지도/64분의 321/네 번째 찾으려고 및 HTTP 상태 404

내 urlmapping가 발생합니다 :

"map/$id" (controller: "map", action: "transform", formats=['text/plain'], method: "GET") 

내 컨트롤러를. 따로 클래스 선언과 클래스 가져 오기 무에서 다른 진행 :

def transform = { 
    //println params.id 
    if (param.id) { 
    DataMap dm = new DataMap(); 
    render dm.hostNodeLookup(params.id) 
    } 
} 

슬래시가됩니다 REST 서비스에 전달 될 데이터와 다를 것 "데이터가 전달되는"당 슬래시의 수의 대부분 1-N 그러나 나는 이스케이프/파싱/다른 현명한 방법으로 그 문제를 해결하는 방법을 알아낼 수 없었다. on this site을 읽었지만이 문제에 너무 도움이되지 않았습니다.

인코딩을 조정하기 위해 웹 서버에 액세스 할 수 없거나 브라우저에서 URL 매핑과 문자열을 렌더링하는 방법이 없습니다. 데이터가 컨트롤러에 전달되지 않아 문자열을 파싱 할 수 없었습니다. 누구나 아이디어가 있습니까?

답변

1

this post을 읽은 후에 시도해 보니 매력적이었습니다.

"map/$id**" (controller: "map", action: "transform", formats=['text/plain'], method: "GET") 
다음 urlmapping 파일에서

은 내가 id 변수에이 ** 추가