3

我正在编写一个 RESTful Web 服务,我想在其中返回一个包含一些结果集的 XML。我使用了 XSTREAM 并将对象解析为 XML 字符串。由于我需要返回这个字符串,我需要知道如何将它传递回调用客户端。

一种方法是将响应返回给调用客户端。我的示例代码在这里显示了我正在尝试做的事情。

@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 提前感谢所有帮助。

4

2 回答 2

9

这只是一个清洁问题。它最终奏效了。我最终以以下方式创建了响应。

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

它工作得很好。我希望它可以帮助某人。

于 2009-08-07T12:43:25.327 回答
2

HTTP 响应是否具有正确的内容类型标头来识别它是 Xml ietext/xml还是application\xml?签出 XML 提要的正确内容类型

响应状态 200 只是标准HTTP 响应代码之一,这意味着请求已成功,因此只有在这种情况下才返回它。

于 2009-08-05T12:45:05.050 回答