当我的服务器调用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)。我做错了什么?
答案 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();
}