1

Windows 7 で Java 1.7.0 で Jetty 9.0.4 を使用しています。

これらのタイムアウトが機能することを証明するにはどうすればよいですか? 理想的には、機能しない場合に失敗する統合単体テストを探しています。

org.mortbay.jetty.nio.SelectChannelConnector connector = new SelectChannelConnector();
connector.setMaxIdleTime(10_000);
connector.setSoLingerTime(10_000);
connector.setLowResourceMaxIdleTime(10_000);

以下の方法でhttpポートに接続してみましたが、1分おきに1バイト読み続けるだけで失敗しません。最大アイドル時間が 10 秒に設定されていたため、失敗すると予想していました。

Socket socket = new Socket("localhost", port);
OutputStream outputStream = socket.getOutputStream();
outputStream.write("GET / HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n".getBytes());
outputStream.flush();
InputStream content = socket.getInputStream();
char aChar;
int bytesToReceive = 1000;
while((aChar = (char) content.read()) != -1 && bytesToReceive-- > 0) {
    System.out.println("Read '" + aChar + "' and going to sleep for a minute.");
    Thread.sleep(60_000);
}
4

1 に答える 1