Мне нужно создать сервлеты добавления во время выполнения. Когда я запускаю следующий код.
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: Когда я запускаю следующий код. protected void processRequest (запрос HttpServletRequest, ответ HttpServletResponse) вызывает исключение ServletException, IOException ...
Мне нужно создать сервлеты добавления во время выполнения. Когда я запускаю следующий код.
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: Когда я запускаю следующий код. protected void processRequest (запрос HttpServletRequest, ответ HttpServletResponse) вызывает исключение ServletException, IOException ...
Мне нужно создать сервлеты добавления во время выполнения. Когда я запускаю следующий код.
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, потому что этот сервлет контекст уже инициализирован
Невозможно добавить новые сервлеты во время выполнения, то есть после инициализации контекста сервлета, или я делаю что-то не так?