You need to do this manually (there probably should be a convenience method, but it doesn't exist)
In Jetty 7, it will be something like (untested):
public void removeServlets(WebAppContext webAppContext, Class<?> servlet) { ServletHandler handler = webAppContext.getServletHandler(); List<ServletHolder> servlets = new ArrayList<ServletHolder>(); Set<String> names = new HashSet<String>(); for( ServletHolder holder : handler.getServlets() ) { if(servlet.isInstance(holder.getServlet())) { names.add(holder.getName()); } else { servlets.add(holder); } } List<ServletMapping> mappings = new ArrayList<ServletMapping>(); for( ServletMapping mapping : handler.getServletMappings() ) { if(!names.contains(mapping.getServletName())) { mappings.add(mapping); } } handler.setServletMappings( mappings.toArray(new ServletMapping[0]) ); handler.setServlets( servlets.toArray(new ServletHolder[0]) ); }
source share