Мне нужно создать сервлеты добавления во время выполнения. Когда я запускаю следующий код.
protected void processRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException
{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
out.println("<html>");
out.println("<head>");
out.println("<title> URI out</title>");
out.println("</head>");
out.println("<body>");
Integer generatedKey = Math.abs(randomiser.nextInt());
out.print(generatedKey);
createServlet(Integer.toString(generatedKey),request.getServletContext());
} finally {
out.println("</body>");
out.println("</html>");
out.close();
}
}
private void createServlet(String generatedKey, ServletContext servletContext) {
String servletMapping = "/"+generatedKey;
ServletRegistration sr = servletContext.addServlet(generatedKey, "com.path.lbs.servlets.testDynamic");
sr.setInitParameter("keyname", generatedKey);
sr.addMapping(servletMapping);
}
, я получаю следующую ошибку:
java.lang.IllegalStateException: PWC1422: невозможно настроить сопоставление для сервлета 1114600676 сервлета context / 123-LBS, потому что этот сервлет Есть идеи, почему? Я делаю что-то неправильно? Есть ли способ справиться с этим (кроме ручного добавления KeyListener)?