一、下载Tomcat7源码

从官网上下载Tomcat源码,   http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.70/src/apache-tomcat-7.0.70-src.zip

下载之后,将源码解压后重名为tomcat-src,放在E盘的tomcat7目录下.

二、安装Ant

因Tomcat源码需要ant编译,所以需要安装Ant,从官网下载后解压,并配置环境变量即可.

三、安装JDK6

tomcat7的编译需要JDK6的环境,JDK7以及以上,ant 编译时会报错.



四、用Ant工具编译Tomcat源码

打开cmd命令行工具,进入tomcat源码目录,输入ant  ide-eclipse ,然后按下Enter键,会自动下载编译需要的依赖包.

 

testexist:
[echo] Testing for C:\Users\yulei/tomcat-build-libs/objenesis-1.2/objenesis-1.2.jar downloadzip:
[get] Getting: https://objenesis.googlecode.com/files/objenesis-1.2-bin.zip
[get] To: C:\Users\yulei\tomcat-build-libs\download-1649634615.zip
[get] Error getting https://objenesis.googlecode.com/files/objenesis-1.2-bin.zip to C:\Users\yulei\tomcat-build-libs\download-16496 BUILD FAILED
E:\tomcat7\tomcat_src\build.xml:2697: The following error occurred while executing this line:
E:\tomcat7\tomcat_src\build.xml:2848: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:570)
at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:411)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:525)
at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:272)
at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:329)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:172)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:923)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:158)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:133)
at org.apache.tools.ant.taskdefs.Get$GetThread.openConnection(Get.java:728)
at org.apache.tools.ant.taskdefs.Get$GetThread.get(Get.java:641)
at org.apache.tools.ant.taskdefs.Get$GetThread.run(Get.java:631) Total time: 1 minute 58 seconds

可以看见,编译报错了,是因为从国外网站下载依赖的objenesis-1.2-bin.zip超时了,导致编译失败.

解决办法,翻墙下载objenesis-1.2-bin.zip文件,这里为了方便,为大家提供了下载地址:http://pan.baidu.com/s/1kUWtA8v

将其解压后放在C:\Users\yulei\tomcat-build-libs 目录下面

再次运行ant  ide-eclipse 命名就会编译成功了

编译成功后,会生成Eclipse的项目文件(.classpath等),如下图:

五、将Tomcat7源码导入MyEclipse

导入MyEclipse后,工程上面会出现红色感叹号.


打开MyEclipse的Problems视图,可以看到如下错误:

解决方案:右键tomcat工程,Build Path--->Configure Build Path


如上图,以Ant举例,图示操作,点击ant  ,然后点击Edit..    ,若没有,需要自己新建一个.

以此类推,把余下的Tomacat依赖包配置好。TOMCAT_LIB_BASE  配置的地址是:C:/Users/yulei/tomcat-build-libs

六、运行Tomcat

右键Tomcat工程,Run As --->Java Application, 选择Bootstrap.

点击OK,出现如下选项:

选择start-tomcat,后命令行出现如下信息:

九月 05, 2016 11:21:21 下午 org.apache.catalina.startup.CatalinaProperties loadProperties
WARNING: Failed to load catalina.properties
九月 05, 2016 11:21:21 下午 org.apache.catalina.startup.Catalina load
WARNING: Unable to load server configuration from [D:\CBSS\code\tomcat-7.0.x\output\build\conf\server.xml]
九月 05, 2016 11:21:21 下午 org.apache.catalina.startup.Catalina load
WARNING: Unable to load server configuration from [D:\CBSS\code\tomcat-7.0.x\output\build\conf\server.xml]
九月 05, 2016 11:21:21 下午 org.apache.catalina.startup.Catalina start
SEVERE: Cannot start server. Server instance is not configured.

表示,tomcat服务没有跑起来,别着急,用Ant  deploy一下你的tomcat工程.

deploy成功之后,然后再运行你的tomcat,会出现如下信息,表示Tomcat服务已成功启起来:

访问http://localhost:8080

Tomcat7源码环境搭建的更多相关文章

  1. Linux Kafka源码环境搭建

    本文主要讲述的是如何搭建Kafka的源码环境,主要针对的Linux操作系统下IntelliJ IDEA编译器,其余操作系统或者IDE可以类推. 1.安装和配置JDK确认JDK版本至少为1.7,最好是1 ...

  2. 【ZooKeeper系列】3.ZooKeeper源码环境搭建

    前文阅读: [ZooKeeper系列]1.ZooKeeper单机版.伪集群和集群环境搭建 [ZooKeeper系列]2.用Java实现ZooKeeper API的调用 在系列的前两篇文章中,介绍了Zo ...

  3. MyBatis源码环境搭建

    之前研究mybatis都是参考前面学习的人的一些经验,并没有自己搭建源码环境进行.现在以mybatis3.4.6版本搭建,搭建过程中各种failed,下面大致记录环境搭建过程. 1.mybatis3. ...

  4. 1-web应用之LAMP源码环境搭建

    目录 一.LAMP环境的介绍     1.LAMP环境的重要性     2.LAMP组件介绍 二.Apache源码安装     1.下载Apache以及相关依赖包     2.安装Apache以及相关 ...

  5. 【一步一步】Spring 源码环境搭建

    平时项目中基本上都会用到spring,但是源码还没有深入的了解过.趁这段时间稍微空闲点,开始研究下spring 源码.下面是spring 源码的环境搭建. 主要分为如下步骤: ①安装jdk,gradl ...

  6. Spring源码阅读 源码环境搭建(一)

    ring 源码阅读的搭建(一) 一 下载spring源码 进入官方网页:https://spring.io/projects/spring-framework 进入相关的github位置,下载zip包 ...

  7. Hadoop源码学习笔记之NameNode启动场景流程一:源码环境搭建和项目模块及NameNode结构简单介绍

    最近在跟着一个大佬学习Hadoop底层源码及架构等知识点,觉得有必要记录下来这个学习过程.想到了这个废弃已久的blog账号,决定重新开始更新. 主要分以下几步来进行源码学习: 一.搭建源码阅读环境二. ...

  8. Spring 5.2.x 源码环境搭建(Windows 系统环境下)

    前期准备 1.确保本机已经安装好了 Git 2.Jdk 版本至少为 1.8 3.安装好 IntelliJ IDEA (其他开发工具,如 eclipse.Spring Tool Suite 等也是可以的 ...

  9. Tomcat 源码环境搭建

    Tomcat 源码搭建 下载源码 下载地址 :https://tomcat.apache.org/download-80.cgi#8.5.35 下载之后解压缩 导入Idea 添加pom.xml文件 & ...

随机推荐

  1. Spring Cloud学习笔记-005

    服务消费者 之前已经搭建好了微服务中的核心组件——服务注册中心(包括单节点模式和高可用模式).也有了服务提供者,接下来搭建一个服务消费者,它主要完成两个目标,发现服务以及消费服务.其中,服务发现的任务 ...

  2. SQL to Java code for Elasticsearch

    Elasticsearch虽然定位为Search Engine,但是因其可以持久化数据,很多时候,我们把Elasticsearch当成Database用,但是Elasticsearch不支持SQL,就 ...

  3. JS事件练习题

    1.点击按钮连续弹窗5次 <div class="noe"> <div class="noe1" onClick="n()" ...

  4. Java内存回收机制.md

    1.java的内存 java的内存结构分为 堆 (是gc的主要区域) 线程共享,主要是用于分配实例对象和数组 栈 线程私有,它的生命周期和线程相同,又分成 虚拟机栈和本地方法栈,只有它会报 Stack ...

  5. 我的webstorm 使用总结

    有一次 ,我改了公共组件里的好多组件 ,然后我肯定是哪里改的不对 ,出语法错误了 ,但是我的 webstorm 编译并没有报错,然后我就手动一点点 改 ,去看 ,最后还是没有找到 ,我就把文件夹给删了 ...

  6. Mysql之表的操作与索引操作

    表的操作: 1.表的创建: create table if not exists table_name(字段定义); 例子: create table if not exists user(id in ...

  7. codeforces868D Huge Strings

    You are given n strings s1, s2, ..., sn consisting of characters 0 and 1. m operations are performed ...

  8. 【UOJ UNR #1】火车管理

    来自FallDream的博客,未经允许,请勿转载,谢谢. 题面 考虑用可持久化线段树直接维护每个点在不同时刻,第一辆车的编号. 这样3操作就变成了区间赋值,1操作变成区间和 2操作的话,只需要查询一下 ...

  9. [USACO08JAN]跑步Running

    题目描述 The cows are trying to become better athletes, so Bessie is running on a track for exactly N (1 ...

  10. NOI2017游记

    Day -1: THUSC后,下定决心好好学习,不过由于自制力太弱,还是没有忍住浪了几次. 老师把NOI前的天分为了4种:考试日.交流日.讲课日.自习日. 考试日是我被郭神短神妖神任神常神尹神龙神游神 ...