2014-03-03 3 views
3

XML을 출력하는 WebService를 사용해야합니다. 아래의 코드에서 :Android Annotations + RestTemplate - 응답 XML을 문자열로받습니다.

  1. getResult를 방법은 HTML 태그 (같은 < 페이지 > 태그)와 XML을 반환 할 수 있습니다.
  2. 그래서 XML을 먼저 구문 분석하기 전에 수동으로 변환해야 할 것입니다.
  3. 그러나 RestTemplate은 다른 호출과 잘 작동합니다. 그래서 나는 그것을 무시하고 싶지 않다 & 어디서나 수동 논리를 쓴다.

질문 :

  • 은 RestTemplate을 사용하여 문자열로 원시 XML을 다시 얻을 수있는 기본 방법이 있습니까?
  • 사용자 지정 변환기를 작성해야합니까? 어떤 포인터?

    @Rest(rootUrl = "http://my.root.url", converters ={SimpleXmlHttpMessageConverter.class }) 
    public interface MyRestClient { 
    
        @Get("/path/to/restmethod/{day}") 
        MyResponse getResult(int day); <-------------- Returns null when return type is changed to String 
    
    } 
    

    내가 문자열로 반환 유형을 설정하려 : 다음

내 코드입니다. 그러나이 오류와 함께 null을 반환합니다 : Failed to convert value of type 'null' to required type 'java.lang.String'.

답변

0

좋아요. 직접 답변을 찾았습니다. 반환 유형을 String으로 변경하는 것 외에도 StringHttpMessageConverter을 변환기로 추가해야했습니다. 아래의 코드 조각 :

@Rest(rootUrl = "http://my.root.url", converters = { StringHttpMessageConverter.class, SimpleXmlHttpMessageConverter.class}) 

: 컨버터의 순서는 중요합니다.