javax.servlet.UnavailableException: Servlet not initialized
at org.eclipse.jetty.servlet.ServletHolder.ensureInstance(ServletHolder.java:761)
at org.eclipse.jetty.servlet.ServletHolder.prepare(ServletHolder.java:748)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:497)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:745)
I am using the following code to undeploy:
ServletHandler handler = servletContext.getServletHandler();
//Get all existing servlets.
List<ServletHolder> currentHolders = Arrays.asList(handler.getServlets());
List<ServletHolder> newHolders = new ArrayList<ServletHolder>();
PathMap.MappedEntry<ServletHolder> entry =
handler.getHolderEntry(servletEndPoint.getContextPath());
ServletHolder obsoleteHolder = entry.getValue();
for(ServletHolder holder : currentHolders)
{
if(!holder.equals(obsoleteHolder))
{
newHolders.add(holder);
}
}
handler.setServlets(newHolders.toArray(new ServletHolder[0]));
Could someone confirm what is the way to undeploy dynamically? I could deploy dynamically with no issues.