`

深入浅出Jetty嵌入式服务器教程

阅读更多

引言: 在使用artifactory搭建Maven私服时,发现artifactory使用了jetty做为嵌入式中间件,配合内存数据库,将JEE的web应用程序做得像windows程序一样,只要双击一个.bat脚本就可以启动服务了,用老罗的话说就是:“太方便了”,但其归功于jetty的使用,下面就介绍下怎样把web程序做的像本地程序一样。

 

此篇教程需有Maven使用基础,如不太了解可以参考我的Blog中关于Maven使用的部分。

 

归正传,在开始之前,首先需要将Jetty资源加入到应用程序中,在工程的pom.xml文件的<dependencies>中添加如下依赖:

<dependency>
			<groupId>org.mortbay.jetty</groupId>
			<artifactId>jetty</artifactId>
			<version>${jetty-version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.4</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.ant</groupId>
			<artifactId>ant</artifactId>
			<version>1.7.1</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>commons-el</groupId>
			<artifactId>commons-el</artifactId>
			<version>1.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.3.1</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-simple</artifactId>
			<version>1.3.1</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>xerces</groupId>
			<artifactId>xercesImpl</artifactId>
			<version>2.6.2</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>xerces</groupId>
			<artifactId>xmlParserAPIs</artifactId>
			<version>2.6.2</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>tomcat</groupId>
			<artifactId>jasper-compiler</artifactId>
			<version>5.5.15</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>tomcat</groupId>
			<artifactId>jasper-compiler-jdt</artifactId>
			<version>5.5.15</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>tomcat</groupId>
			<artifactId>jasper-runtime</artifactId>
			<version>5.5.15</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl104-over-slf4j</artifactId>
			<version>1.3.1</version>
			<scope>provided</scope>
		</dependency>

 在<dependencies>外添加properties值来指定jetty的版本

	<properties>
		<jetty-version>6.1.7</jetty-version>
	</properties>

然后在工程路径下执行mvn eclipse:eclipse命令来添加jetty依赖。

 

接下来在工程根目录下添加jetty文件夹,存放jetty的服务配置。文件为jetty.xml和realm.properties(文件包jetty配置文件.rar可在结尾处下载)

其中在jetty.xml文件中配置应用信息,如:

 

    <!-- ======================================================= -->
    <!-- Configure application                                   -->
    <!-- ======================================================= -->
    <New id="application" class="org.mortbay.jetty.webapp.WebAppContext">
		<Set name="contextPath">/BISP</Set>
		<Set name="war">src/main/webapp</Set>
        <Get name="SessionHandler">
            <Set name="SessionManager">
                <New class="org.mortbay.jetty.servlet.HashSessionManager">
                    <Set name="maxInactiveInterval">1600</Set>
                </New>
            </Set>
        </Get>
    </New>

 contextPath为服务的根路径,war为web应用路径。

 

然后在工程中添加jetty的启动类,在此类的main方法中启动服务。此类内容如下:

 

/**
 * 类说明: 启动Jetty服务器<br>
 * 创建时间: 2008-6-4 上午11:27:06<br>
 * 
 * @author seraph<br>
 * @email: seraph115@gmail.com<br>
 */
public class Main {

	/**
	 * 功能说明:<br>
	 * 创建者: seraph<br>
	 * 创建时间: 2008-6-4 上午11:27:07<br>
	 * 
	 * @param args
	 */
	public static void main(String[] args) {

		Server server = null;
		try {
			String applicationHome = System.getProperty("application.home");

			if (applicationHome == null) {
				applicationHome = System.getProperty("user.dir");
			}
			if (applicationHome != null) {
				applicationHome = applicationHome.replace('\\', '/');
			}

			URL configUrl = new URL(new StringBuffer().append("file:").append(
					applicationHome).append("/jetty/jetty.xml").toString());

			XmlConfiguration xmlConfiguration = new XmlConfiguration(configUrl);
			server = new Server();
			xmlConfiguration.configure(server);
			server.start();
			
		} catch (Exception e) {

			System.err.println(new StringBuffer().append(
					"Could not start the Jetty server: ").append(e).toString());

			if (server != null) {
				try {
					server.stop();
				} catch (Exception e1) {
					System.err.println(new StringBuffer().append(
							"Unable to stop the jetty server: ").append(e1)
							.toString());
				}
			}
		}

	}

}

 

至此,在开发调试或应用发布时只需使用java运行此类即可。

4
0
分享到:
评论
1 楼 expone 2011-10-17  
没运行成功啊。404错误。

相关推荐

    spring-boot实战PDF 完整版和随书源码.7z

    这本书深入浅出地介绍了如何使用Spring Boot构建高效、简洁的Java应用程序。随书源码提供了丰富的示例,使读者能够通过实际操作加深理解。 Spring Boot是由Pivotal团队开发的用于简化Spring应用初始搭建以及开发...

    spring boot 汪云飞pdf

    《Spring Boot实战》这本书由汪云飞撰写,深入浅出地介绍了Spring Boot这一现代JavaEE开发的颠覆者。Spring Boot以其“开箱即用”的特性,简化了传统的Spring应用程序的配置,大大提升了开发效率,是微服务架构中的...

    SpringBoot实战(第四版)带目录可以复制粘贴

    此书深入浅出地讲解了SpringBoot的核心概念和实践应用,以下是书中可能涵盖的一些关键知识点: 1. **SpringBoot简介**:介绍SpringBoot的诞生背景、设计理念以及它在现代Java开发中的重要地位。 2. **快速起步**:...

    尚硅谷springboot核心技术笔记

    这份笔记深入浅出地解析了Spring Boot的各个关键组成部分,旨在帮助开发者从底层理解并熟练掌握Spring Boot的使用。 首先,Spring Boot的基础部分包括了自动配置、起步依赖和嵌入式Web服务器的概念。自动配置是...

    Spring Boot揭秘 PDF

    《Spring Boot揭秘》这本书深入浅出地探讨了Spring Boot的核心概念和实现机制,为开发者提供了宝贵的实战指导。Spring Boot作为一款快速开发框架,简化了Java应用程序的初始设置和配置,使得开发者可以更专注于业务...

    spring-boot-reference-guide-zh.pdf

    《Spring Boot官方教程》是为初学者和有一定经验的开发者准备的一份详尽指南,它深入浅出地介绍了Spring Boot框架的核心概念和技术。Spring Boot以其快速启动、简化配置的特性,已经成为Java开发领域中的热门选择,...

    Spring Boot 2 Cookbook 第二版

    《Spring Boot 2 Cookbook 第二版》是一本针对Java开发者极具价值的开发指南,它深入浅出地介绍了Spring Boot 2这一强大框架的使用方法。Spring Boot是Spring框架的一个子项目,旨在简化Java应用程序的初始搭建以及...

    Java中间件实践

    总的来说,《Java中间件实践》深入浅出地介绍了这些技术,对于想要在Java领域深化技能的开发者来说,是一本不可多得的宝典。通过学习和实践,你可以更好地理解和运用这些中间件,提升自己的开发能力,为构建大型、高...

    羊皮卷 学通Java Web的24堂课 源代码 (不含视频)

    本书通过24个精心设计的课程,深入浅出地讲解了Java Web开发的基础知识和核心技能。源代码是学习编程的重要组成部分,这本书提供的源代码能够帮助读者更直观地理解书中所讲的理论知识,并能在实际操作中进行实践。 ...

    SpringBoot实战-清晰

    在《Spring Boot实战》第四版中,作者深入浅出地讲解了Spring Boot的基础知识、核心特性和实际应用,为读者提供了一个全面的学习指南。 1. **Spring Boot简介** - **起步依赖(Starters)**:Spring Boot的核心...

    演示弹簧启动

    《深入浅出Spring Boot启动原理》 在Java开发领域,Spring Boot已经成为构建现代Web应用程序的首选框架,其便捷的启动方式极大地简化了项目初始化和配置过程。本文将深入解析Spring Boot的启动流程,帮助读者理解这...

    web-layer-tutorial

    《深入浅出Web层技术:基于Java的实践教程》 在现代互联网开发中,Web层是应用程序的重要组成部分,它负责处理客户端的请求并提供响应。本教程以"web-layer-tutorial"为主题,针对Java开发者,旨在帮助他们深入理解...

Global site tag (gtag.js) - Google Analytics