转自:http://tyrion.iteye.com/blog/1903608

以前看过Tomcat5的一部分源代码,当时只看了个大概的启动分析,后来看了《How Tomcat Works》这本书,讲的还行,出版的较早,所以是基于Tomcat4的代码的分析,Tomcat已经release到7了,很多后来添加的特性与新的实 现方式那本书里面没有涉及。下半年业余时间的主要任务就是完成Tomcat7各个我感兴趣的点的系列文章。

先说下我的源码分析的环境搭建吧,用的是eclipse Juno Service Release 1,然后在tomcat官网下了tomcat7.0.42的源码,这两样准备好之后便是搭建能够运行源码的调试环境了。

1.在eclipse中新建一个java项目,项目取名tc7.0.42


 JRE选择1.6的


 其他设置默认


 2.将下载的tomcat源码包解压开,并拷贝到Eclipse里新建的项目根目录下


 注意,我这里将源码解压开后的bin目录重命名成script之后才拷贝的,因为新建的Java项目中默认编译后的文件存放目录是bin,这样做防止编译后的文件覆盖原来拷贝过去的内容。


 3.将项目中默认的src目录删掉,java和test作为源目录


 

 4.此时会发现项目中缺少一些类,需要手动将依赖的jar包添加进来,所以新建了一个depend-lib目录


 5.实际上缺少的这些jar包eclipse安装目录里面都有,直接拷贝过来就可以了。

在eclipse安装目录的plugins目录下,搜索"ant.jar"


 搜索"javax.wsdl",选版本较高的那个jar包


 搜索"jaxrpc"


 搜索“jdt.core”选最大的那个jar包


 6.把这些jar包加入到编译路径里


 7.此时发现test目录下还有错误,实际上是因为test里面用到了junit的一些注解,所以需要将junit4引进来

右击项目,点击Build Path,选择Add Libraries


 选择junit


 下一步,junit版本选择JUnit 4

自此整个项目应该可以编译了。

8.接下来运行项目根目录下的build.xml,执行默认的ant任务,看看项目构建的有没有问题。


 

控制台输出"BUILD SUCCESSFUL"表示编译构建成功。

9,此时刷新整个项目,会发现多出一个output目录

10.为了让应用跑起来,可以检查一下output\build\conf下是否已经有配置文件,这些文件实际是从项目根路径conf目录下拷贝过来的。

11.找到BootStarp.java文件,Debug前加入默认的catalina home路径作为启动参数。

BootStarp.java文件右键选择Debug As->Debug Configurations


路径设置为output下build的绝对路径。比如我自己的机器设置的值是-Dcatalina.home="E:\workspace\study\tc7.0.42\output\build"

这样就可以在文件中加入断点Debug源码分析了。

【转】Tomcat7.0.42源代码运行环境搭建的更多相关文章

  1. Apache Spark1.1.0部署与开发环境搭建

    Spark是Apache公司推出的一种基于Hadoop Distributed File System(HDFS)的并行计算架构.与MapReduce不同,Spark并不局限于编写map和reduce ...

  2. Windows Server 2003 IIS6.0+PHP5(FastCGI)+MySQL5环境搭建教程

    准备篇 一.环境说明: 操作系统:Windows Server 2003 SP2 32位 PHP版本:php 5.3.14(我用的php 5.3.10安装版) MySQL版本:MySQL5.5.25 ...

  3. Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程详解

    作为重量级的跨平台开发的游戏引擎,Cocos2d-x在现今的手游开发领域占有重要地位.那么问题来了,作为Cocos2dx的学习者,它的可移植特性我们就需要掌握,要不然总觉得少一门技能.然而这个时候各种 ...

  4. Hadoop基础教程-运行环境搭建

    一.Hadoop是什么 一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. Hadoop实现了一个分布式 ...

  5. Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程

    这篇文章主要介绍了Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程,需要的朋友可以参考下 准备篇 一.环境说明: 操作系统:Windows Server 201 ...

  6. C / C++ 运行环境搭建教程

    C / C++ 运行环境搭建教程 一.实验环境 本机操作系统:Windows 7 64位 虚拟机:VMware Workstation 12 pro 虚拟机操作系统:Linux CentOS 7 二. ...

  7. (一)windows7下solr7.1.0默认jetty服务器环境搭建

    windows7下solr7.1.0默认jetty服务器环境搭建 1.下载solr solr7官网地址:http://lucene.apache.org/solr/ jdk8官网地址:http://w ...

  8. 自动化测试 Appium之Python运行环境搭建 Part2

    Appium之Python运行环境搭建 Part2 by:授客 QQ:1033553122 实践环境 参见 Appium之Python运行环境搭建 Part1 环境部署 1.安装Android SDK ...

  9. 自动化测试 Appium之Python运行环境搭建 Part1

    Appium之Python运行环境搭建 Part1 by:授客 QQ:1033553122 实践环境 Win7 Python 3.4.0 JAVA JDK 1.8.0_121 node.js8.11. ...

随机推荐

  1. python基础学习笔记1

    一.字符串: 1.不可变性.分片赋值对于字符串是不合法的. 2.字符串格式化 % eg: print 'The price is: %d' % 30 print 'The price is: %.2f ...

  2. 解析ECC与RECC内存之间的区分

    普通的定义上区分:内存,是连接CPU 和其他设备的通道,起到缓冲和数据交换作用.当CPU在工作时,需要从硬盘等外部存储器上读取数据,但由于硬盘这个“仓库”太大,加上离CPU也很“远”,运输“原料”数据 ...

  3. 电脑Win7如何取得文件管理所有权(提供各种GHOST版本的Windows)

    电脑Windows7系统如何取得文件管理所有权?从 VISTA开始,微软对操作系统的安全性有了明显的提高,这样使得以前我们在XP下都可以打开或删除的文件(夹),无法在WIN7下进行操作.就算是在 Ad ...

  4. 【玩转Ubuntu】08. Linux报错:Syntax error: "(" unexpected解决办法

    问题: 在MAC上写了一段shell脚本,放到Ubuntu上运行总是报下面这个错误,单步调试都是对的,就是直接运行会报错. bixiaopeng@ubuntu:~/package$ sh packag ...

  5. 动画画圆的效果特效ios源码

    一款不错的支持动画画圆的效果特效源码,该效果实现了动画画圆,还可以扩展成画其他平面图形功能等,大家可以下载看看吧. //定义所需要画的图形  -(void)intiUIOfView  {      U ...

  6. linux线程之pthread_join和pthread_detach

    在任何一个时间点上,线程是可结合的(joinable)或者是分离的(detached).一个可结合的线程能够被其他线程收回其资源和杀死.在 被其他线程回收之前,它的存储器资源(例如栈)是不释放的.相反 ...

  7. Repeater 无刷新分页

    原文:http://blog.csdn.net/Sandy945/archive/2009/05/22/4208998.aspx 本文讲述的是如何利用 XMLHttpRequest 来对 Repeat ...

  8. SQL Server和MySql获取当前数据库每个表的列数

    Sql server:(连接数据库后,点击当前数据库再新建查询) select count(c.name),o.name from syscolumns c left join sysobjects ...

  9. #pragma pack(push,1)与#pragma pack(pop)

    这是给编译器用的参数设置,有关结构体字节对齐方式设置, #pragma pack是指定数据在内存中的对齐方式. #pragma pack (n)             作用:C编译器将按照n个字节对 ...

  10. POJ 2406 Power Strings(字符串的最小循环节)

    题目链接:http://poj.org/problem?id=2406 题意:确定字符串最多是多少个相同的字串重复连接而成的 思路:关键是找到字符串的最小循环节 code: #include < ...