我有一个 servlet,它使用本地主机在我的本地 Windows 计算机上运行。我们已经设法联系到我们在美国的一位同事,他现在正在他们的 Linux 机器上托管该程序,因此我们现在可以在模拟的现实世界环境中测试该程序。
但是我似乎遇到了一个错误,我现在无法调试写入,因为我的主管已经离开了一天并且我没有访问权限。我们留下的谅解是我会做一些调查。
就在他离开之前,我将范围缩小到这些代码行
file = File.createTempFile("temp", Long.toString(System.nanoTime()));
out.print("Managed to make temp file in trst_servlet");
FileWriter writer = new FileWriter(file);
ObjectOutputStream oos = xstream.createObjectOutputStream(writer, "ProcessedInformation");
oos.writeObject(returnedSearchData);
oos.flush();
oos.close();
out.print("object Persisted"); //PROGRAMME MAKES IT TO HERE
response.setContentLength((int)(file.length()));
FileInputStream in = new FileInputStream(file);
OutputStream ops = response.getOutputStream();
byte[]buf = new byte[1024];
int count = 0;
while((count = in.read(buf)) >= 0)
{
ops.write(buf, 0, count);
}
in.close();
ops.close();
}
catch(IOException ex)
//EXCEPTION CAUGHT HERE
我想知道,是否有人知道这是否是 Linux 机器上缓冲区大小的问题,或者例如写入大文件大小,然后尝试将其发送回网络。
本质上,这个基于 java 的 servlet 将 xml 写入我的 c# 程序。
谢谢
最佳答案
错误是什么?如果在浏览器中加载 URL 是否有效?
可能出现的问题:
鉴于它之前在另一个盒子上工作,现在在新盒子上找不到文件,因为它位于不同的相对位置。
可以在 Windows 机器上工作,但不能在 Linux 上工作?您是否在文件路径中使用了 Windows 路径分隔符? “路径\到\文件”而不是“路径/到/文件”?
您没有将 Content-type 设置为“application/xml”,并且 C# 客户端由于某种原因拒绝它。 (在浏览器中测试)。
关于c# - Servlet,写入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5107417/