我正在编写一个RESTful Web服务,我希望返回一个包含一些结果集的XML。我使用了XSTREAM并将对象解析为XML字符串。由于我需要返回此字符串,因此我需要知道如何将其传递回调用客户端。
一种方法是将RESPONSE返回给调用客户端。我的示例代码显示了我正在尝试做的事情。
@Path("somepath")
public class ClassToReturnXML
{
public Response methodToReturnXML()
{
ResponseBuilder builder = new ResponseBuilderImpl();
builder.type(MediaType.TEXT_XML);
builder.entity(myXMLString);
return builder.build();
}
}
不幸的是它没有返回实体,虽然状态代码是200.我是否错误地实例化了ResponseBuilder?我还看到了应该如下实例化的地方:
ResponseBuilder builder = Response.status(200);
请建议在响应中返回XML的合适方法是什么。
我正在使用APACHE CXF进行RESTFUL服务。 (版本2.2.3 - 我猜):D 在此先感谢您的所有帮助。
答案 0 :(得分:9)
这只是一个清洁问题。它最终奏效了。我最终以下列方式创建了响应。
Response response = Response.status(200).type(MediaType.TEXT_XML).entity(xmlString).build();
它运作得很好。我希望它有所帮助。
答案 1 :(得分:2)
HTTP响应是否具有正确的内容类型标头,以确定它是Xml,即text/xml
还是application\xml
?结帐The Proper Content Type for XML Feeds。
响应状态200只是标准HTTP Response Codes之一,表示请求已成功,因此只有在这种情况下才会返回。