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

在eclipse里使用Embeded tomcat进行web项目开发和调试

阅读更多
1) 从http://apache.justdn.org/tomcat/tomcat-5/v5.5.15/bin/apache-tomcat-5.5.15-embed.zip 下载Tomcat的Embeded版本。 2) 在eclipse里建一个java project(Tomcat Startup)。然后把从1)下载的tomcat解压到这个Tomcat Startup project中把Tomcat Startup/lib下所有的lib加到eclipse的Liberaries。(把Tomcat Startup/lib下所有的lib加到eclipse的Liberaries。)。如下图所示:


3) 写一个tomcat 启动类,EmbeddedTomcat.java

import java.io.File;
import java.net.InetAddress;

import org.apache.catalina.Context;
import org.apache.catalina.Engine;
import org.apache.catalina.Host;
import org.apache.catalina.startup.Embedded;

public class EmbeddedTomcat {

  private String path = null;
  private Embedded embedded = null;
  private Host host = null;
  /**
    * Default Constructor
    *
    */
  public EmbeddedTomcat() {

  }

  /**
    * Basic Accessor setting the value of the context path
    *
    * @param path - the path
    */
  public void setPath(String path) {

    this.path = path;
  }

  /**
    * Basic Accessor returning the value of the context path
    *
    * @return - the context path
    */
  public String getPath() {

    return path;
  }

  /**
    * This method Starts the Tomcat server.
    */
  public void startTomcat() throws Exception {

    // Create an embedded server
    embedded = new Embedded();
  
    Engine engine = null;
    // Set the home directory
//    System.setProperty("catalina.home", getPath());
    embedded.setCatalinaHome(getPath());

    // Create an engine
    engine = embedded.createEngine();

    // Create a default virtual host
    host = embedded.createHost("localhost", getPath()
      + "/webapps");
    engine.addChild(host);
    engine.setDefaultHost(host.getName());

    // Create the ROOT context
    Context rootCxt = embedded.createContext("",
      getPath() + "/webapps/ROOT");
    rootCxt.setPrivileged(true);
   
    //Create your own context
    Context scoreCxt = embedded.createContext("/score", "E:\\Eclipse_WorkSpace\\Eclipse_Work\\WebDynamicAgg\\score");
   
   
    host.addChild(rootCxt);
    host.addChild(scoreCxt);
   
    // Install the assembled container hierarchy
    embedded.addEngine(engine);

    // Assemble and install a default HTTP connector
    embedded.addConnector(embedded.createConnector(
            InetAddress.getByName("127.0.0.1"), 8080, false));
    // Start the embedded server
    embedded.start();
  }

  /**
    * This method Stops the Tomcat server.
    */
  public void stopTomcat() throws Exception {
    // Stop the embedded server
    embedded.stop();
  }

  public static void main(String args[]) {

    try {

      EmbeddedTomcat tomcat = new EmbeddedTomcat();
      tomcat.setPath((new File(".")).getCanonicalPath());
      tomcat.startTomcat();
    }
    catch( Exception e ) {

      e.printStackTrace();
    }
  }
}

对其中tomcat 基础的介绍请看http://www.onjava.com/lpt/a/1547。在我的这个启动类中向tomcat中添加两个context, 一个tomcat root context, 另一个是在我的eclipse里面的一个web project。

    // Create the ROOT context
    Context rootCxt = embedded.createContext("",
      getPath() + "/webapps/ROOT");
    rootCxt.setPrivileged(true);
   
    //Create your own context
    Context scoreCxt = embedded.createContext("/score", "E:\\Eclipse_WorkSpace\\Eclipse_Work\\WebDynamicAgg\\score");
   
   
    host.addChild(rootCxt);
    host.addChild(scoreCxt);

假如要能认出eclipse的java project是一个web project, 你需要把你的web project的context做成发布时一样就行(本例中的context时score), 然后在eclipse中改变build path:如下图:


把所有的lib放到WEB-INF/lib 就行了。

 

4) 优点: 使用这种方式启动tomcat非常快, 而且更干净, 占用更少的memory。 相比下比 Myeclipse插件快很多(本人用的最多的也是Myeclipse的app server deployment 和 jsp xml editor)。而且myeclipse是在你每次保存文件时把这个文件考到对应的webapps下你的project下面。 使用这种方式还少了拷贝文件。

5) 在实际操作时当我浏览score时, 发生了找不到一些lib的错误。 一个log4j还有一个是commons-el.jar(在TOMCAT_HOME/common\lib里面这里的tomcat不是emebed版本的),把这两个lib考到Tomcat Startup/lib文件夹下, 然后再把他们add到eclipse的Liberaries中。

参考:http://www.onjava.com/lpt/a/1547

分享到:
评论

相关推荐

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

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

    Eclipse创建一个Maven Web项目

    如何在Eclipse IDE中使用maven创建一个动态Web项目. 使用的工具和技术 - Eclipse Jee Oxygen Maven 3.3.3 JavaSE 1.8 Servlet API 3.1.0 Apache Tomcat 7.0.47 (Embeded)

    Windows CE 嵌入式开发系列课程视频\(2)使用Embeded Visual C++开发通讯终端及应用实例代码分析

    5. **调试与优化**:在开发过程中,调试和性能优化至关重要。课程将讲解如何使用eVC++的调试工具,定位和修复代码中的错误,以及如何优化代码以提高运行效率。 6. **实例代码分析**:课程提供的实例代码会展示一个...

    Windows嵌入式开发系列课程(2):使用Embeded Visual C++开发通讯终端及应用实例代码分析

    在Windows嵌入式开发领域,使用Microsoft的Embedded Visual C++(EVC)工具是一个常见的选择。本课程聚焦于如何利用EVC开发通讯终端及其应用实例,通过提供的资源,包括PPT、视频、文档和示例代码,我们可以深入理解...

    EmbeddedTomcat:嵌入式Tomcat工作示例。 Tomcat版本8.5.38。 谢谢Heroku

    总的来说,嵌入式Tomcat是Java Web开发中的一个重要概念,它简化了小型Web应用的开发和部署流程,使得开发者可以更加专注于业务逻辑,而不是服务器配置。通过Maven和自定义的启动脚本,可以轻松地实现Tomcat的集成和...

    嵌入式系统课件[Embeded System]

    2. 操作系统:嵌入式操作系统(如RTOS)的工作机制,以及如何在这些系统上开发和调试应用程序。 3. 编程语言:C/C++是嵌入式开发的主要语言,理解指针、内存管理等基础知识至关重要。 4. 硬件接口:I/O端口、串行...

    dso.rar_Embeded-SCM Develop_dso

    2. **Web应用程序开发**:由于用户可以在网上编辑Word文档,这意味着开发了一个Web前端,可能使用HTML、CSS和JavaScript等技术,可能还涉及Ajax或WebSockets进行实时数据交互。 3. **服务器端处理**:服务器端可能...

    EW字符文件转换器(Embeded wizard辅助工具)

    在嵌入式系统开发中,Embeded Wizard是一款广泛使用的图形用户界面(GUI)设计工具,它允许开发者创建丰富的交互式界面,而无需深入掌握底层编程语言。然而,在处理大量字符串资源时,手动管理可能会变得繁琐。这时...

    c-embeded-system-learning.rar_Embeded Systems

    6. **调试**:在没有图形用户界面和丰富的调试工具的环境下,调试嵌入式系统是一项挑战。学会使用JTAG、UART串口调试、逻辑分析仪等工具是必要的技能。 7. **电源管理**:在电池供电的设备中,电源管理至关重要。...

    瑞萨单片机开发环境系统用户手册

    ### 瑞萨单片机开发环境系统用户手册解析 #### 一、High-performance Embedded Workshop 概览 ...同时,需要注意的是,在使用过程中要充分了解相关责任声明和技术支持渠道,以确保项目的顺利进行。

    Embeded wizard辅助工具

    3. **测试验证**:在导入更新后,需要在Embeded Wizard环境中进行预览和测试,确保所有的界面元素都能正确显示新的字符串。 4. **自动化脚本**:对于频繁的转换操作,可以编写自动化脚本,减少手动操作的繁琐,提高...

    embeded cd

    这本书可能详细介绍了如何在Embest EduKit2410开发板上使用和配置WiinCE系统。 Embest EduKit2410是一款常见的嵌入式开发平台,通常用于教学和实验目的。它配备了一颗基于ARM架构的处理器,如Samsung S3C2410,这是...

    人工智能-项目实践-嵌入式-A tiny embeded rtos. 一个小型的嵌入式实时系统.zip

    8. **工具链**:配套的编译器、调试器等,方便开发者进行软件开发和调试。 此项目中的"gw-os-master"可能是指该RTOS的源代码仓库,包含了整个操作系统的源代码和相关文档。对于学习和研究者来说,深入研究这个源码...

    E语言Web 代理服务器源码 可以调试

    【标题】"E语言Web 代理服务器源码 可以调试"揭示了这是一个基于E语言编写的Web代理服务器,源代码可用,便于学习和调试。E语言,全称 Embeded E,是一种轻量级的脚本语言,常用于快速开发嵌入式应用,如网络服务。 ...

    Install QT.QT/Embedded

    QT/QTE 开发环境搭建指南 在本文中,我们将详细介绍如何在Ubuntu 9.0.4操作系统上...这个环境特别适合那些需要使用Eclipse作为IDE的开发者,它提供了强大的集成开发和调试功能,使得QT应用的开发变得更加高效和便捷。

    embeded-Linux-introduction-070822.rar_embeded_linux

    10. **嵌入式开发环境**:开发者通常使用QEMU这样的模拟器进行开发和测试,或者使用如OpenEmbedded、Yocto Project等构建系统来自动化生成定制化的Linux发行版。 11. **调试工具**:GDB(GNU调试器)用于远程调试...

    Building Embeded Linux system

    - **主机/目标开发设置**:解释了在开发过程中如何搭建主机与目标设备之间的通信环境,包括硬件接口的选择和配置。 - **主机/目标调试设置**:阐述了调试过程中的关键技术问题,如使用仿真器或JTAG接口进行调试的...

    EmbeddedBuilder-v1.3.5.21587 GD32F系列嵌入式开发工具

    EmbeddedBuilder是专为GD32F系列芯片设计的集成开发环境,它集成了编译器、调试器、项目管理、代码编辑和资源管理等功能,为开发者提供了全方位的开发支持。版本号v1.3.5.21587表示这是该工具的最新稳定版,具有多项...

    Embeded Explorer TestingDemo

    总的来说,"Embeded Explorer TestingDemo"是一个针对S60 3rd平台内嵌浏览器开发的重要参考资料,通过学习和实践,开发者能够掌握在移动设备上构建高效、稳定且用户友好的浏览器功能。而BrCtlSampleApp作为基础模板...

Global site tag (gtag.js) - Google Analytics