c# - Servlet,写入数据

标签 c# java linux servlets file-io

我有一个 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 是否有效?

可能出现的问题:

  1. 鉴于它之前在另一个盒子上工作,现在在新盒子上找不到文件,因为它位于不同的相对位置。

  2. 可以在 Windows 机器上工作,但不能在 Linux 上工作?您是否在文件路径中使用了 Windows 路径分隔符? “路径\到\文件”而不是“路径/到/文件”?

  3. 您没有将 Content-type 设置为“application/xml”,并且 C# 客户端由于某种原因拒绝它。 (在浏览器中测试)。

关于c# - Servlet,写入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5107417/

相关文章:

linux - Bash - 使用 socat 的代理服务器

linux - Puppet 分阶段重启

c# - 如何用三角形覆盖多边形

java - 如何从另一个类中的另一个公共(public)整数调用公共(public)整数?

c# - 异常过滤器在 web api 中不起作用

java - Mockito 中的 Spring @Value 字段注入(inject)

java - 与 Java 正则表达式的意外匹配

c++ - 按修改时间在c++中排序文件

c# - Autofac 作为 AWS Lambda Serverless ASP.NET Core 3.1 Web API 中的 IoC 容器

c# - 使用 C# 在移动宽带 api windows 7 和 windows 8 上苦苦挣扎,不确定要安装什么