jetty 嵌入式web服务器使用

    xiaoxiao2025-10-27  7

    要说嵌入式运行Jetty,最常用的还应该是运行一个标准的war文件或者指定一个webapp目录。

    0. 首先需要添加Jetty运行时webapp的依赖包,下面是一个完整的pom.xml文件

    [html]  view plain  copy  print ? <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.google.code.garbagecan.jettystudy</groupId>       <artifactId>jettystudy</artifactId>       <packaging>jar</packaging>       <version>1.0-SNAPSHOT</version>       <name>jettystudy</name>       <url>http://maven.apache.org</url>       <build>           <plugins>               <plugin>                   <artifactId>maven-compiler-plugin</artifactId>                   <inherited>true</inherited>                   <version>2.3.1</version>                   <configuration>                       <source>1.6</source>                       <target>1.6</target>                       <debug>true</debug>                   </configuration>               </plugin>           </plugins>       </build>       <dependencies>           <!-- Spring support -->           <dependency>               <groupId>org.springframework</groupId>               <artifactId>spring</artifactId>               <version>2.5.6</version>           </dependency>                      <!-- Jetty -->           <dependency>               <groupId>org.eclipse.jetty.aggregate</groupId>               <artifactId>jetty-all</artifactId>               <version>8.0.4.v20111024</version>           </dependency>              <!-- Jetty Webapp -->           <dependency>               <groupId>org.eclipse.jetty</groupId>               <artifactId>jetty-webapp</artifactId>               <version>8.0.4.v20111024</version>           </dependency>              <!-- JSP Support -->           <dependency>               <groupId>org.glassfish.web</groupId>               <artifactId>javax.servlet.jsp</artifactId>               <version>2.2.3</version>           </dependency>              <!-- EL Support -->           <dependency>               <groupId>org.glassfish.web</groupId>               <artifactId>javax.el</artifactId>               <version>2.2.3</version>           </dependency>              <!-- JSTL Support -->           <dependency>               <groupId>org.glassfish.web</groupId>               <artifactId>javax.servlet.jsp.jstl</artifactId>               <version>1.2.1</version>               <exclusions>                   <exclusion>                       <artifactId>jstl-api</artifactId>                       <groupId>javax.servlet.jsp.jstl</groupId>                   </exclusion>               </exclusions>           </dependency>       </dependencies>   </project>  

    其实不需要这么多依赖,maven的依赖只需要一个依赖就ok了

    <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>8.1.16.v20140903</version> </dependency>

    1. 运行标准的war文件

    1.1 首先找一个完整的war包,这里使用了struts2自带的一个例子应用程序struts2-blank.war;

    1.2 创建自己的Jetty Server启动类WebAppContextWithWarServer,其中指定了war文件的路径,并指定context路径为"/myapp"

    [java]  view plain  copy  print ? package com.google.code.garbagecan.jettystudy.sample6;      import org.eclipse.jetty.server.Server;   import org.eclipse.jetty.webapp.WebAppContext;      public class WebAppContextWithWarServer {       public static void main(String[] args) throws Exception {           Server server = new Server(8080);              WebAppContext context = new WebAppContext();           context.setContextPath("/myapp");           context.setWar("E:/share/test/struts2-blank.war");           server.setHandler(context);              server.start();           server.join();       }   }   1.3 运行WebAppContextWithWarServer类,然后访问// http://localhost:8080/myapp/就可以看到struts2的例子界面了。

    2. 运行一个webapp目录

    2.1 还是用上面的struts2-blank.war,将这个war包解压后放到一个目录下;

    2.2 创建自己的Jetty Server启动类WebAppContextWithFolderServer,其中指定了webapp目录,并指定context路径为"/myapp"

    [java]  view plain  copy  print ? package com.google.code.garbagecan.jettystudy.sample6;      import org.eclipse.jetty.server.Server;   import org.eclipse.jetty.webapp.WebAppContext;      public class WebAppContextWithFolderServer {       public static void main(String[] args) throws Exception {           Server server = new Server(8080);              WebAppContext context = new WebAppContext();           context.setContextPath("/myapp");   //web.xml可以改成其他名字,如web1.xml。 //如果不指明配置文件的位置,会根据项目资源setResourceBase路径找下面的web.xml。如果找不到,默认页面index.html优先于index.jsp         context.setDescriptor("E:/HLZT/chat/src/main/webapp/WEB-INF/web.xml");  //maven项目web.xml路径   context.setResourceBase("E:/HLZT/chat/src/main/webapp/");//maven项目资源路径 //context.setDescriptor("E:/HLZT/chat/WEB-INF/web.xml"); //普通项目web.xml路径  //context.setResourceBase("E:/HLZT/chat/WebRoot");//普通项目资源路径                    context.setParentLoaderPriority(true);           server.setHandler(context);              server.start();           server.join();       }   }   2.3 运行WebAppContextWithFolderServer类,然后访问// http://localhost:8080/myapp/就可以看到struts2的例子界面 相关资源:jetty简单启动web服务
    最新回复(0)