0

以下を使用して、アプリケーションで httpserver を作成しています。

HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);

このサーバーは、最初に次を使用して応答メッセージを送信します

OutputStream os = httpEx.getResponseBody();
os.write(("your request is being handled, please wait").getBytes());

次に、1 つの jFilechooser を開きます。また、何か問題が発生した場合は、使用してエラーがスローされます

os.write(("Failed to handle your request").getBytes());

アプリケーションがユーザーのマシンで実行されると、ログからわかるように httpserver が適切に作成されますが、ユーザーがこのサーバーに要求を送信しても何も起こりません。空白のページを表示します。しかし、すべてのos.write行を削除すると、正常に動作し、ファイル選択ポップアップが表示されます。何が問題なのかわかりません。これについて私を助けてください。私はこれらのアプローチを試しました:

try {           
            os.write(("Your request is being handled, please wait").getBytes());
            os.close();
            //code to open Jfilechooser pop-up

        } catch (Exception e) {
            os.write(("Failed to handle the request because"+e.getMessage()).getBytes());
            os.close();}

    try {           
                os.write(("Your request is being handled, please wait").getBytes());

                //code to open Jfilechooser pop-up

            } catch (Exception e) {
                os.write(("Failed to handle the request because"+e.getMessage()).getBytes());
                }

os.close();
4

1 に答える 1

0

解決しました。os.flush(); を追加しました。なので:

finally(){
os.flush();
os.close();
is.close();
httpEx.close();

}
于 2013-04-10T07:34:22.883 に答える