zoukankan      html  css  js  c++  java
  • Jetty实战之 嵌入式Jetty运行web app

    转载地址:http://blog.csdn.net/kongxx/article/details/7237034

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

    0. 首先需要添加Jetty运行时webapp的依赖包,下面是一个完整的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.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>

     1. 运行标准的war文件

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

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

    Java代码  收藏代码
    1. package com.google.code.garbagecan.jettystudy.sample6;    
    2.     
    3. import org.eclipse.jetty.server.Server;    
    4. import org.eclipse.jetty.webapp.WebAppContext;    
    5.     
    6. public class WebAppContextWithWarServer {    
    7.     public static void main(String[] args) throws Exception {    
    8.         Server server = new Server(8080);    
    9.     
    10.         WebAppContext context = new WebAppContext();    
    11.         context.setContextPath("/myapp");    
    12.         context.setWar("E:/share/test/struts2-blank.war");    
    13.         server.setHandler(context);    
    14.     
    15.         server.start();    
    16.         server.join();    
    17.     }    
    18. }    

     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代码  收藏代码
    1. package com.google.code.garbagecan.jettystudy.sample6;    
    2.     
    3. import org.eclipse.jetty.server.Server;    
    4. import org.eclipse.jetty.webapp.WebAppContext;    
    5.     
    6. public class WebAppContextWithFolderServer {    
    7.     public static void main(String[] args) throws Exception {    
    8.         Server server = new Server(8080);    
    9.     
    10.         WebAppContext context = new WebAppContext();    
    11.         context.setContextPath("/myapp");    
    12.         context.setDescriptor("E:/share/test/struts2-blank/WEB-INF/web.xml");    
    13.         context.setResourceBase("E:/share/test/struts2-blank");    
    14.         context.setParentLoaderPriority(true);    
    15.         server.setHandler(context);    
    16.     
    17.         server.start();    
    18.         server.join();    
    19.     }    
    20. }    

     2.3 运行WebAppContextWithFolderServer类,然后访问// http://localhost:8080/myapp/就可以看到struts2的例子界面了。

  • 相关阅读:
    求能粘贴Word 内容(含图片)的在线编辑器
    html5分割上传实现超大文件无插件网页上传代码
    html5分割上传实现超大文件无插件网页上传源代码
    html5分割上传实现超大文件无插件网页上传源码
    html5分割上传实现超大文件无插件网页上传插件
    html5分割上传实现超大文件无插件网页上传控件
    html5分割上传实现超大文件无插件网页上传组件
    (推荐)手机频率与信号测试软件Cellular-Z使用方法
    虚拟化产品对比-思维导图
    图解VMware内存机制
  • 原文地址:https://www.cnblogs.com/yangmengdx3/p/4744543.html
Copyright © 2011-2022 走看看