jetty作為內嵌服務器自啟動


  為了完成web工程的測試,最近內嵌jetty也要搞起來.第一次搞還是挺焦頭爛額的.直接上成果:

package com.test.action;

import java.io.File;

import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
import org.eclipse.jetty.webapp.WebAppContext;

public class RunTest {
    public static void main(String[] args) {
        tt();
    }

    public static void tt() {

        Server server = new Server();// 創建jetty web容器
        server.setStopAtShutdown(true);// 在退出程序是關閉服務

        // 創建連接器,每個連接器都是由IP地址和端口號組成,連接到連接器的連接將會被jetty處理
        Connector connector = new SelectChannelConnector();// 創建一個連接器
        connector.setHost("127.0.0.1");// ip地址
        connector.setPort(8080);// 連接的端口號
        server.addConnector(connector);// 添加連接
        QueuedThreadPool threadPool = new QueuedThreadPool();
        threadPool.setMaxThreads(3000);
        server.setThreadPool(threadPool);
        // 配置服務
        WebAppContext context = new WebAppContext();// 創建服務上下文
        context.setContextPath("/strutsDemo");// 訪問服務路徑 http://{ip}:{port}/
        context.setConfigurationDiscovered(true);
        String baseDir = Thread.currentThread().getContextClassLoader()
                .getResource("").getPath();
        context.setDescriptor(baseDir + File.separator + "/WEB-INF/web.xml");// 指明服務描述文件,就是web.xml
        // context.setDescriptor("/E:/workspace/strutsDemo/target/classes/\\/WEB-INF/web.xml");//
        // 指明服務描述文件,就是web.xml
        context.setResourceBase(System.getProperty("user.dir")
                + "/src/main/webapp/");// 指定服務的資源根路徑,配置文件的相對路徑與服務根路徑有關
        server.setHandler(context);// 添加處理try {
            server.start();// 開啟服務
            server.join();
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(1);
        }
    }

}

  啟動訪問就可以了.主要是context的配置花了很多功夫,老是配不好.還有據說jetty版本或者jar包不同會有配置差異,我用的是8.0.4版本,順便貼上maven依賴:

<!--jetty -->
        <dependency>
            <groupId>org.eclipse.jetty.aggregate</groupId>
            <artifactId>jetty-all</artifactId>
            <version>8.0.4.v20111024</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-webapp</artifactId>
            <version>8.0.4.v20111024</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>8.0.4.v20111024</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-servlet</artifactId>
            <version>8.0.4.v20111024</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-deploy</artifactId>
            <version>8.0.4.v20111024</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-xml</artifactId>
            <version>8.0.4.v20111024</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-security</artifactId>
            <version>8.0.4.v20111024</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-client</artifactId>
            <version>8.0.4.v20111024</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-ajp</artifactId>
            <version>8.0.4.v20111024</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-annotations</artifactId>
            <version>8.0.4.v20111024</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-websocket</artifactId>
            <version>8.0.4.v20111024</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-util</artifactId>
            <version>8.0.4.v20111024</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-io</artifactId>
            <version>8.0.4.v20111024</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-http</artifactId>
            <version>8.0.4.v20111024</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-continuation</artifactId>
            <version>8.0.4.v20111024</version>
        </dependency>
        <dependency>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jsp-2.1-glassfish</artifactId>
            <version>2.1.v20100127</version>
        </dependency>

  事實上不需要這么多,我這是一勞永逸的偷懶做法,你們可以改進喲


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM