2015-02-01 2 views
1

는 프롤로그으로 Grails XML 오류가 허용되지 않음 :은 내가 컬 명령에 다음 한

:
def workXml = new XmlSlurper().parseText(xml).declareNamespace(sample: 'sample') 

나는 같은 오류가

이 스택 추적입니다 :

Message: Content is not allowed in prolog. 
Line | Method 
->> 10 | index  in app.APIController$$EP3387M0 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 198 | doFilter in grails.plugin.cache.web.filter.PageFragmentCachingFilter 
|  63 | doFilter in grails.plugin.cache.web.filter.AbstractFilter 
|  53 | doFilter in grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter 
|  49 | doFilter in grails.plugin.springsecurity.web.authentication.RequestHolderAuthenticationFilter 
|  82 | doFilter in grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter 
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor 
| 615 | run  in java.util.concurrent.ThreadPoolExecutor$Worker 
^ 745 | run . . . in java.lang.Thread 
+0

실제 XML을 확인하십시오. 그것은 전혀 XML이 아니며 (예 : 서버 오류 페이지) 또는 전혀 유효하지 않습니다. – cfrick

+0

XML을 제공했으며 유효합니다. Curl 명령어 참조 – Sagarmichael

+0

구문 분석하려는 실제 XML을 의미합니다. 당신이 입력하는 XML은 작동하지만'String xml'에서 whats를 아는 사람 – cfrick

답변

3

당신은 curl에 잘못된 옵션을 사용하고 - -d 옵션은 name=value쌍을 기대하고 브라우저에서 양식 포스트처럼 취급합니다. 있는 그대로 명령 줄에 주어진 데이터를 정확하게 보내려면 대신 --data-binary을 사용해야합니다. 여담으로

request.XML 이미 구문 분석 - 그렇게 문자열로 다시 변환하고 다시 소리내어 시도 할 필요가 없습니다 당신이 XmlSlurper에서 얻을하는 것처럼 동일한 GPathResult입니다.