Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jetty-users] Jetty6 migration to Jetty9 Help

Hi Team,

I have changed the following code in Jetty6 to Jetty9 migration. I'm facing an issue that Illegal StateException :'No contexts found"   
   
        Existing code in Jetty6:
        this.jettyWebServer = new Server(); //org.mortbay.jetty.Server

        ThreadPool threadPool = new ThreadPool(threadPoolSize);

        jettyWebServer.setThreadPool(threadPool);

        Connector connector = new SelectChannelConnector();

        connector.setPort(port);

        this.jettyWebServer.setConnectors(new Connector[]{connector});
 
        WebAppDeployer webAppDeployer = new WebAppDeployer();

        webAppDeployer.setContexts(this.jettyWebServer); /// setContexts method is not available in Jetty9

        webAppDeployer.setWebAppDir(warpath);

        webAppDeployer.setExtract(true);

        webAppDeployer.setParentLoaderPriority(true);

        webAppDeployer.start();

        this.jettyWebServer.setStopAtShutdown(true);

        this.jettyWebServer.setSendServerVersion(false);
            

        this.jettyWebServer.start();
        this.jettyWebServer.join();
       
        I have modified the above code for Jetty9 as follows::
         Jetty9 code:

DeploymentManager deploymentManager = new DeploymentManager(); // added DeploymentManager in Jetty9
        QueuedThreadPool threadPool = new QueuedThreadPool(threadPoolSize);// Thread pool
        threadPool.setMaxThreads(500);
      
        this.jettyWebServer = new Server(threadPool);// org.eclipse.jetty.Server
        
        ContextHandlerCollection contexts = new ContextHandlerCollection();
    
        contexts.setHandlers(new Handler[] { context});

        this.jettyWebServer.setHandler(contexts);
    
        ServerConnector connector = new ServerConnector(jettyWebServer);
       
        connector.setPort(port);
      
        this.jettyWebServer.setConnectors(new Connector[]{connector});
          
        WebAppProvider webAppDeployer = new WebAppProvider();// WebAppProvider replaced webAppDeployer in Jetty6
      
        webAppDeployer.setExtractWars(true);

        webAppDeployer.setParentLoaderPriority(true);

        webAppDeployer.setMonitoredDirName(warpath);
            
        deploymentManager.addAppProvider(webAppDeployer);
        this.jettyWebServer.addBean(deploymentManager);
        this.jettyWebServer.setStopAtShutdown(true);
        this.jettyWebServer.start();
        this.jettyWebServer.join();

In Jetty 9 code I have deploymentmanager and webAppProvider classes. Since there is no setContexts method in Jetty9 How can we set the context?. Also the jetty9 code is correct ?. Could you please help me ?.


Thanks,
Arun

Back to the top