コンポーネント内で実行されている 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 ファイルに no-caching タグが含まれている場合は、まったく返されるべきではないことが示されています。
これらの非応答を引き起こしているコードに何かありますか??? ServerResource オブジェクトが応答を非常に不安定に処理する原因となっている何かが欠けていますか? または、Restlet の応答メカニズムにバグを見つけましたか?
誰かアドバイスください...