Ich muss programmatisch ein Servlet auf einem Jetty 6 Server hinzufügen und entfernen. Während das Hinzufügen fast problemlos möglich ist, kann ich keinen effektiven Weg zum Entfernen finden. Für meine Zwecke ist es wichtig, ein Servlet hinzuzufügen und zu entfernen, weil es mit einer dynamischen Inhaltsarchitektur verbunden ist. Ich muss einen neuen Dienst hinzufügen, wenn ich eine Komponente hinzufüge, und ich muss den Dienst entfernen, wenn ich die Komponente entferne.
Um ein Servlet hinzuzufügen, habe ich dieses Muster verwendet:
Server server = new Server(8080);
class MyServlet extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
resp.getOutputStream().write("Hello World!".getBytes());
}
}
...
public void addServlet(HttpServlet s, String path)
{
Context root = new Context(server,"/",Context.SESSIONS);
root.addServlet(new ServletHolder(new MyServlet()), "/test/*");
root.getServletHandler().
}
public void removeServlet(HttpServlet s, String path)
{
//What I have to put here ? There is no removeServlet like methods in server/Context/ServletHolder
}
Warum ist das Entfernen eines Servlets nicht so offensichtlich? Können Sie mir die Beweggründe erklären?