我在Windows 7上使用Jetty 9.0.4和Java 1.7.0。
如何证明这些超时有效?理想情况下,我正在寻找一个集成单元测试,如果它们不起作用将会失败。
org.mortbay.jetty.nio.SelectChannelConnector connector = new SelectChannelConnector();
connector.setMaxIdleTime(10_000);
connector.setSoLingerTime(10_000);
connector.setLowResourceMaxIdleTime(10_000);
我尝试以下列方式连接到http端口,但它不会失败,只是每隔一分钟继续读取一个字节。我预计它会失败,因为最大空闲时间设置为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);
}
答案 0 :(得分:2)
Jetty 9没有SelectChannelConnector,也没有org.mortbay包名...那是Jetty 6代码。
Jetty从Jetty 7开始迁移到Eclipse Foundation,自Jetty 6以来已有超过150个版本。
至于您的测试用例,请参阅此测试代码: