美文网首页Java技术分享
在Maven Web项目中通过Java代码启动内嵌的jetty

在Maven Web项目中通过Java代码启动内嵌的jetty

作者: Belmode | 来源:发表于2018-07-31 22:18 被阅读1次
    1. 在IDEA中,通过maven原型创建web项目
    • 这里要注意,是要选择maven-archetype-webapp,而不是其他的。这个是最简单的web模版。

    • 然后一路next。

    2.手动 添加java 目录,存放包。

    在eclipse使用最基本的maven-web是可以直接创建出比较完善的目录结构的,但是IDEA不知为何没有创建出来。


    3.修改项目module
    • java目录标记为source
    • 确定此位置正确,这样在webapp目录上会有一个蓝点标识
    • 项目结构


    4.添加pom.xml依赖

    主要依赖,没有其他的了。
    注意,不能再引入tomcat的依赖,会出错!

     <dependency>
         <groupId>org.eclipse.jetty.aggregate</groupId>
         <artifactId>jetty-all-server</artifactId>
         <version>8.2.0.v20160908</version>
    </dependency>
    
    <dependency>
         <groupId>org.eclipse.jetty</groupId>
         <artifactId>jetty-jsp</artifactId>
         <version>8.2.0.v20160908</version>
    </dependency>
    
    5. 新建主类
    package top.belmode.starter;
    
    import org.eclipse.jetty.server.Server;
    import org.eclipse.jetty.webapp.WebAppContext;
    
    public class Main {
    
        public static void main(String[] args) {
    
            // 服务器的监听端口
            Server server = new Server(9999);
            // 关联一个已经存在的上下文
            WebAppContext context = new WebAppContext();
            // 设置描述符位置
            context.setDescriptor("./src/main/webapp/WEB-INF/web.xml");
            // 设置Web内容上下文路径
            context.setResourceBase("./src/main/webapp");
            // 设置上下文路径
            context.setContextPath("/");
            context.setParentLoaderPriority(true);
            server.setHandler(context);
    
            try {
                server.start();
                // server.join();
            } catch (Exception e) {
                e.printStackTrace();
            }
            System.err.println("Jetty-8.2.0 Server war started");
            System.err.println("请访问http://localhost:9999");
        }
    }
    
    6. 一个简单的index.jsp
    <html>
    <body>
    <h2>Hello World!</h2>
    </body>
    </html>
    
    7. 启动top.belmode.starter.Main,浏览器访问9999端口

    结束

    相关文章

      网友评论

        本文标题:在Maven Web项目中通过Java代码启动内嵌的jetty

        本文链接:https://www.haomeiwen.com/subject/qdskvftx.html