0

我有一个在组件中运行的 ServerResource 对象。它的目的是在许多方面像一个基本的 HTTP 服务器一样工作。它使用 Representation 获取文件并将文件的内容返回给浏览器。

下面提供了此应用程序的活动功能:

   public Representation showPage()
   {
     Representation rep = null;

     if(fileName != null)
     {         
        File path = new File("pages/" + fileName);       
        rep = new FileRepresentation(path,MediaType.ALL);
     }

     return(rep);
   }

请注意,“fileName”是以前作为属性传入的 HTML 文件(或 index.html)的名称。该应用程序提供的文件都位于名为“pages”的子目录中,如代码所示。这个想法是浏览器发送一个对 HTML 文件的 HTTP 请求,服务器以与 Apache 相同的方式返回该文件的内容。

另请注意,restlet 应用程序被部署为 JSE 应用程序。我正在使用 Restlet 2.1。

访问应用程序时会出现一个有趣的问题。有时,当请求来自 Firefox 浏览器时,服务器根本不发送响应。日志输出显示请求进入,但服务器不响应,即使是 404 也不响应。浏览器等待响应一段时间,然后超时。

在使用 Internet Explorer 时,有时浏览器会因为没有收到服务器的响应而超时,但有时服务器也会返回 304 响应。我对这个响应的研究表明它根本不应该被返回——特别是如果 HTML 文件没有包含缓存标签。

代码中是否存在导致这些无响应的内容???是否缺少某些东西导致 ServerResource 对象如此不可靠地处理响应?还是我在 Restlet 的响应机制中发现了一个错误?

有人请指教...

4

0 回答 0