Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jetty-users] undeploying the servlet dynamically

Hello,

I am trying to un-deploy a servlet dynamically and it throws an exception:

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.




Back to the top