• 嵌入式启动jetty


    由于jetty8以上版本已经抛弃JDK1.6,公司统一开发JDK又一直不升级,所以我们使用jetty8

    pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.nihaorz</groupId>
        <artifactId>my-project</artifactId>
        <packaging>war</packaging>
        <version>1.0-SNAPSHOT</version>
        <name>my-project</name>
        <url>http://maven.apache.org</url>
        <dependencies>
            <!-- 增加对jsp解析的支持,如果项目中没有使用jsp,这个依赖可以删掉 -->
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-jsp</artifactId>
                <version>8.1.22.v20160922</version>
            </dependency>
            <!-- jetty主依赖 -->
            <dependency>
                <groupId>org.eclipse.jetty.aggregate</groupId>
                <artifactId>jetty-all</artifactId>
                <version>8.1.22.v20160922</version>
            </dependency>
        </dependencies>
        <build>
            <finalName>my-project</finalName>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.6</source>
                        <target>1.6</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    

    jetty.properties,依据项目结构自行修改

    #jetty部署端口
    jetty.port=8080
    #jetty部署上下文
    jetty.contextPath=/webapp
    #资源路径,开发模式下默认为./src/main/webapp,也可设置绝对路径
    jetty.resourceBase=./src/main/webapp
    #web.xml路径,开发模式下默认为./src/main/webapp/WEB-INF/web.xml,也可设置绝对路径
    jetty.descriptor=./src/main/webapp/WEB-INF/web.xml
    

    DevStart.java,启动类,run main()

    package com.nihaorz.start;
    
    import org.eclipse.jetty.server.Request;
    import org.eclipse.jetty.server.Server;
    import org.eclipse.jetty.server.handler.AbstractHandler;
    import org.eclipse.jetty.webapp.WebAppContext;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.util.Properties;
    
    public class DevStart extends AbstractHandler {
    
        @Override
        public void handle(String s, Request request, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException, ServletException {
    
        }
    
        public static void main(String[] args) throws Exception {
            Properties prop = new Properties();
            prop.load(DevStart.class.getResourceAsStream("/config/jetty.properties"));
            WebAppContext context = new WebAppContext();
            // 设置端口
            Server server = new Server(Integer.parseInt(prop.getProperty("jetty.port")));
            // 设置部署上下文
            context.setContextPath(prop.getProperty("jetty.contextPath"));
            // 设置基础资源路径
            context.setResourceBase(prop.getProperty("jetty.resourceBase"));
            // 设置web.xml
            context.setDescriptor(prop.getProperty("jetty.descriptor"));
            context.setParentLoaderPriority(true);
            server.setHandler(context);
            server.start();
            server.join();
        }
    
    }
    

      

      

  • 相关阅读:
    代码—五天前是星期几
    随手笔记-日期
    建造曲线记忆表格
    2017-5-10随手记
    java-web——第一课 tomcat
    复习
    Leetcode 24. Swap Nodes in Pairs(详细图解一看就会)
    这可能是最详细的解析HTTP走私攻击的文章
    使用grub2引导进入Linux或Window系统
    ACM集训第一次积分赛赛前复习+day4
  • 原文地址:https://www.cnblogs.com/nihaorz/p/6622399.html
Copyright © 2020-2023  润新知