2009-08-05 4 views
3

일부 결과 집합을 포함하는 XML을 반환하려는 RESTful 웹 서비스를 작성하고 있습니다. 나는 XSTREAM을 사용하고 XML 문자열로 객체를 파싱했다. 이 문자열을 반환해야하므로 호출 클라이언트에 다시 전달하는 방법을 알아야합니다.REST 서비스에서 XML 응답을 반환하십시오.

한 가지 방법은 RESPONSE를 호출하는 클라이언트로 반환하는 것입니다. 그리고 여기에있는 샘플 코드는 제가하려고하는 것이 무엇인지 보여줍니다. 상태 코드는 내가 잘못 ResponseBuilder의 인스턴스 (200) 암은 비록

@Path("somepath") 
public class ClassToReturnXML 
{ 
    public Response methodToReturnXML() 
    { 

     ResponseBuilder builder = new ResponseBuilderImpl(); 
     builder.type(MediaType.TEXT_XML); 
     builder.entity(myXMLString); 
     return builder.build(); 
    } 
} 

불행하게도, 엔티티를 반환하지 않습니다? 또한 다음과 같이 인스턴스화해야한다는 것을 보았습니다.

ResponseBuilder builder = Response.status(200); 

응답으로 XML을 반환하는 적절한 방법이 무엇인지 제안하십시오.

나는 편안한 서비스를 위해 APACHE CXF를 사용하고 있습니다. (버전 2.2.3 - 추측) : D 사전 도움을 주셔서 감사합니다.

답변

8

그냥 청소 문제였습니다. 그것은 결국 효과가있었습니다. 결국 다음과 같은 방식으로 응답을 만들었습니다.

Response response = Response.status(200).type(MediaType.TEXT_XML).entity(xmlString).build(); 

잘 작동합니다. 나는 그것이 누군가를 돕기를 바랍니다.

2

HTTP 응답에 Xml (즉, text/xml 또는 application\xml)을 식별하는 올바른 콘텐츠 유형 헤더가 있습니까? Checkout The Proper Content Type for XML Feeds.

응답 상태 200은 요청이 성공했음을 의미하는 HTTP Response Codes 표준 중 하나 일 뿐이므로이를 반환합니다.

관련 문제