我有一个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#程序。
由于
答案 0 :(得分:0)
错误是什么?如果您在浏览器中加载URL,它是否有效?
可能出现的问题:
鉴于它之前在另一个盒子上工作,现在在新盒子上找不到该文件,因为它位于不同的相对位置。
在Windows机器上工作,但在Linux上却没有?您是否在文件的路径中使用了Windows路径分隔符? “path \ to \ file”而不是“path / to / file”?
您没有将Content-type设置为“application / xml”,并且C#客户端由于某种原因拒绝它。 (在浏览器中测试)。