Могу:
public class MyServlet extends HttpServlet {
private final ConcurrentMap<Integer, String> images;
private final static String RESPONSE_TYPE = "text/plain";
private final static String ID_KEY = "id";
private final static String JPEG_KEY = "jpeg";
private final static Logger log = Logger.getLogger(MyServlet.class);
public MyServlet(ConcurrentMap<Integer, String> images) {
this.images = images;
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(RESPONSE_TYPE);
String img = null;
ImagesToJSON itj = new ImagesToJSON();
img = itj.toString(images);
if (img == null) {
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
return;
}
response.getWriter().println(img);
}
}
UPD
Виновником оказался nodeJS. Он в заголовке запроса отправляет "keep alive", а после получения ответа соединение не закрывается. Каждый раз nodeJS создал нового клиента и удерживал соединение.
UPD2
Я использовал jetty версии 9.3.0.M1, то есть milestone, а не release. Проблема была устранена после обновления библиотек до версии release 9.3.3.v20150827. Дело не в "keep alive". Вот тебе невнимательность.