如何读取XML文件并将其作为restlet中的响应发送

时间:2013-06-15 12:33:02

标签: java android xml rest restlet

当我的服务器调用get请求时,我正在尝试发送XML文件作为响应。

@Get
public Representation getRootDeviceXML() throws IOException {
    File xmlFile = new File("rootdevices.xml");
    if (!xmlFile.exists())
        throw new ResourceException(Status.SERVER_ERROR_INTERNAL);

    SaxRepresentation result;
    try {
        InputStream inputStream = new FileInputStream(xmlFile);
        InputSource inputSource = new InputSource(new InputStreamReader(
                inputStream));

        result = new SaxRepresentation(MediaType.TEXT_XML, inputSource);
    } catch (IOException e) {
        throw new IOException(e.toString());
    }

    Writer writer = new OutputStreamWriter(System.out);
    result.write(writer);

    return result;

}

但实际上没有任何内容在客户端显示为响应(不是404,标题正确发送为Content-Type:text / xml; charset = UTF-8)。我做错了什么?

1 个答案:

答案 0 :(得分:1)

我不知道为什么我要把它变得比必要的复杂。

这就是我成功发送XML文件内容作为回复的方式。

@Get ("xml")
public String getRootDeviceXML() throws IOException {
    BufferedReader br = new BufferedReader(new FileReader(xmlFile));
    String line;
    StringBuilder sb = new StringBuilder();

    while((line=br.readLine())!= null){
        sb.append(line.trim());
    }

    br.close();

    return sb.toString();
}