我在我的一个项目中使用了jetty 7.6.5版本,现在我们要升级到jetty 9.4.7。并发现在9.4.7版本中删除或更改了多个类。
示例:
httpClient.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
ExecutorThreadPool pool = new ExecutorThreadPool(execSvc);
httpClient.setThreadPool(pool); httpClient.setTimeout(1000);
此代码不适用于jetty 9.请帮助解决问题
答案 0 :(得分:0)
让我们先回答你的问题:
从Jetty 7.6.x系列到9.4.x系列是一个巨大的跳跃。您正在跳过将近8年的重大开发并改变您的使用方式。 (7.x是2009年年份至9.4.x是2017年新增的)
您过去使用的技术和机制可能已不再存在。
这是因为HttpClient已经针对HTTP / 1.1,HTTP / 2,ALPN,Unix Socket,FCGI,WebSocket等进行了大量更新。
最重要的是将新的HttpClient视为Web浏览器,启动它一次,让它保持运行,根据需要执行任意数量的请求。你可以为自己做的最糟糕的事情是启动它,执行一两个请求,然后停止它。不支持这种用法,并且可能导致内存/线程/等的奇怪问题。首次需要时启动它,不要停止/关闭HttpClient实例,直到应用程序停止。