我有一个在组件中运行的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的响应机制中发现了一个错误?
有人请指教......