`
lv12312
  • 浏览: 10722 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

构建Tomcat Embed测试环境

阅读更多
国庆假期,闲来无事,翻翻Tomcat 7的书籍,顺便总结一下
Tomcat 7 支持嵌入的Web容器,在本地测试环境或者本地应用场景下比较有用,类似于Jetty的功能,可能是Tomcat觉得自己这个方面有所缺失,在Tomcat 7当中就增加了该功能
下载好Tomcat 7 Embedded版本:
里面包含这几个Jar包:
tomcat-embed-core.jar  Tomcat核心类包,包含Tomcat Server的主要实现
tomcat-dbcp.jar Apache DBCP,用来在Tomcat实例中集成JDBC
tomcat-embed-jasper.jar Tomcat的JSP引擎
ecj-4.2.2.jar 来自Eclipse的JSP编译器,用来给Jasper引擎提供编译JSP文件使用
tomcat-embed-logging-juli.jar 集成JULI日志
tomcat-embed-logging-log4j.jar 集成Log4j日志
以测试一个Servlet为例:
import static org.junit.Assert.assertEquals;

import java.io.IOException;

import javax.servlet.ServletException;

import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.startup.Tomcat;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.xml.sax.SAXException;

public class TomcatServletTest {
	private Tomcat tomcat;

	@Before
	public void startTomcat() throws ServletException, LifecycleException {
		tomcat = new Tomcat();
		tomcat.setPort(8080);
		String tmpDirPath = System.getProperty("java.io.tmpdir");
		Context ctxt = this.tomcat.addContext("/sqrt", tmpDirPath);
		Tomcat.addServlet(ctxt, "servletTest", new ServletTest());
		ctxt.addServletMapping("/", "servletTest");
		this.tomcat.start();
	}

	@Test
	public void testSuccess() throws IOException, SAXException {
		CloseableHttpClient httpClient = HttpClients.createDefault();
		HttpGet httpget = new HttpGet("http://localhost:8080/sqrt/?number=49");
		CloseableHttpResponse response = httpClient.execute(httpget);
		try {
			response = httpClient.execute(httpget);
			HttpEntity entity = response.getEntity();
			System.out.println(EntityUtils.toString(entity));
			assertEquals("The result is 7.0", EntityUtils.toString(entity));
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				response.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	@After
	public void stopTomcat() throws LifecycleException {
		this.tomcat.stop();
	}

}
 
import java.io.IOException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ServletTest extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws IOException {
		Double input = Double.parseDouble(request.getParameter("number"));
		double result = Math.sqrt(input);
		String message = "The result is " + result;
		response.getOutputStream().write(message.getBytes());
	}

}
 
分享到:
评论

相关推荐

    tomcat-embed5.5.28

    本文将详细解析“tomcat-embed5.5.28”这一版本,探讨其在提升项目效率方面的关键作用,并深入讲解如何利用嵌入式Tomcat来构建自定义的Web容器。 首先,嵌入式Tomcat的核心理念是将Tomcat服务器内置于应用程序中,...

    使用embeded tomcat进行嵌入式javaee开发-启动tomcat

    在JavaEE开发中,使用内嵌的Tomcat服务器(通常称为embeded Tomcat)是一种常见的实践,它允许开发者在本地环境中快速、方便地测试和调试应用程序,而无需手动配置独立的服务器实例。本文将深入探讨如何使用embeded ...

    embed-tomcat-example.zip

    【标题】"embed-tomcat-example.zip"是一个包含Java Web项目的压缩包,它演示了如何在应用程序内部使用内嵌的Tomcat服务器进行开发。这种方式使得开发者可以在不依赖外部服务器环境的情况下,快速部署和测试Java Web...

    嵌入式tomcat,带例子。

    这使得开发、测试和部署流程更为简洁,特别是在微服务架构中,每个服务可以包含自己的小型Tomcat实例。 接下来,我们来看看如何使用这个压缩包中的内容: 1. **引入依赖**:在Java项目中,你需要将"tomcat-embed...

    内嵌式tomcat启动web工程

    总的来说,内嵌式Tomcat结合Maven为我们提供了一种便捷的开发和测试环境,使得我们可以快速地启动和停止Web应用,而无需关心外部服务器的配置。这种模式特别适合于持续集成和持续交付流程,极大地提高了开发效率。...

    嵌入tomcat

    1. **准备环境**:下载并解压Tomcat的嵌入版本,将其重命名为`tomcat-embed`并放置在易于访问的位置。将`tomcat-embed/lib`目录下的所有JAR文件添加到项目的类路径中。 2. **构建嵌入式Tomcat实例**:创建`Embedded...

    tomcat7 在java程序中启动

    在使用嵌入式Tomcat时,需要注意的是,嵌入式Tomcat并不适用于生产环境,其设计更多是面向开发和测试阶段。在高并发或需要高可用性的生产环境中,还是需要部署到独立的Tomcat服务器或使用Web服务器集群。 #### 与...

    tomcat-embed-test

    【标题】"Tomcat-Embed-Test"是一个与Java相关的项目,主要关注的是如何在Java应用程序中嵌入式地使用Apache Tomcat服务器进行测试。Apache Tomcat是Java Servlet和JavaServer Pages(JSP)的标准实现,它是一个开源...

    TOMCAT-EMBEDD

    #### 三、构建嵌入式Tomcat环境 为了实现嵌入式Tomcat的应用开发,我们需要按照以下步骤来进行设置: 1. **创建嵌入式Tomcat Server实例**: - 使用`org.apache.catalina.startup.Embedded`类来创建一个嵌入式...

    Intellij IDEA创建Gradle项目并配置Tomcat

    IntelliJ IDEA是一款广受欢迎的Java开发集成环境,它提供了丰富的功能来支持各种项目构建工具,其中就包括Gradle。Gradle是一种强大的构建自动化工具,它允许开发者灵活地定义项目结构和构建过程,同时支持多语言...

    eclipse+tomcat+maven

    4. **插件(Plugins)**:提供了执行构建任务的能力,例如编译源代码、打包项目、运行单元测试等。 5. **仓库(Repositories)**:用于存储项目依赖的仓库系统,分为本地仓库和远程仓库。 #### Eclipse 配置 ...

    tomcat5.5嵌入版

    4. **便于自动化**:在持续集成环境中,嵌入式服务器可以轻松地与构建工具(如Maven或Gradle)集成,实现自动部署和测试。 Tomcat 5.5.20是该版本的一个具体发行版,可能包含以下关键特性: - **Servlet 2.4支持**...

    prueba-tomcat-embed:嵌入了Web servlet和jsp的tomcat的示例

    "prueba-tomcat-embed-master"这个文件夹很可能是项目源码的主目录,里面包含了项目的配置、源代码、测试用例等资源。通常,你可能会在这个项目中找到以下组件: 1. **pom.xml**:Maven的项目对象模型(Project ...

    jfina5.0.0+tomcat内嵌版演示demo

    这个文件名表明它是JFinal演示项目,使用了Tomcat内嵌版(`embed`表示内嵌)。这个压缩包可能包含以下内容: 1. **源代码**:展示了如何在JFinal项目中配置和使用Tomcat内嵌版。 2. **配置文件**:可能包含`web.xml...

    Embedded-Tomcat:WAR 中的 Tomcat 示例

    这种方式称为“嵌入式Tomcat”,它允许开发者将Tomcat的功能直接嵌入到应用中,简化了部署流程,特别适用于微服务和测试环境。 首先,理解"WAR"格式是关键。WAR(Web Application Archive)是一种标准的Java Web...

    servlet_tomcat:Maven,Tomcat,Servlet,Freemarker

    【标题】"servlet_tomcat:Maven,Tomcat,Servlet,Freemarker" 提供了关于构建Java Web应用程序的关键技术,主要包括四个核心组件:Maven、Tomcat、Servlet和Freemarker。这些组件在Java Web开发中扮演着至关重要...

    Servlet 3.0 - Apache Tomcat 7.0.61

    Apache Tomcat 7.0.61是广泛使用的开源Servlet容器,它实现了Servlet 3.0规范,提供了稳定、高性能的运行环境。 一、Servlet 3.0新特性 1. 注解支持:Servlet 3.0引入了注解(Annotation)来声明Servlet、Filter和...

    maven本地仓库(常用Jar包)

    在Java开发中,Maven是一个强大的项目管理和依赖管理工具,它极大地简化了构建、测试和部署过程。Maven的核心理念是“约定优于配置”,通过一套标准化的目录结构和配置文件,使得项目构建变得简单且可预测。Maven的...

    Maven安装包及其仓库

    2. **配置环境变量**: 安装完成后,需要在系统的环境变量中设置`Maven_HOME`,并将`bin`目录添加到`PATH`中,以便在命令行中可以直接运行`mvn`命令。 3. **配置settings.xml**: Maven的配置文件`settings.xml`位于`...

    maven组件依赖测试

    <groupId>org.apache.tomcat.embed <artifactId>tomcat-embed-core <version>9.0.53 ``` 在实际开发中,可能会遇到依赖地狱问题,即多个库之间存在相互冲突的依赖版本。这时,Maven的依赖管理策略(比如...

Global site tag (gtag.js) - Google Analytics