idea下导入Tomcat源码
对于web开发者来说,如果明白了tomcat那对于开发还是后面的学习都是有很大益处的,但在网上看了很多的文章,总是没弄好,经历了很久才弄好了,写个文章记录下,希望也能帮助到其他人。
下载Tomcat源码 
对于下载源码直接进入Tomcat的官网选择对应的版本下载,如图:
添加需要的jar或者配置pom文件
将下载好的文件解压。因为启动Tomcat还需要一些jar包,因此你可以直接将需要的jar拷贝后放在与java文件夹同级的目录下,也可以给解压后的文件夹添加一个pom文件,最终目的就是下载需要的jar。其实使用ant就能完成这些,但是对于ant不熟悉,进入解压的目录后执行ant始终报错,最后也就没使用这种方式了。
pom文件网上也有,但是按照上面说的会有报错,在idea下显示缺少插件 maven-compiler-plugin与maven-jar-plugin。 添加后的 pom文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat7</artifactId>
    <name>tomcat7</name>
    <version>7.0</version>
    <build>
        <finalName>tomcat7</finalName>
        <sourceDirectory>java</sourceDirectory>
        <!--<testSourceDirectory>test</testSourceDirectory>  test 下的有些文件报错,因此将test文件夹去掉了-->
        <resources>
            <resource>
                <directory>java</directory>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>test</directory>
            </testResource>
        </testResources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.6</version>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>ant</groupId>
            <artifactId>ant</artifactId>
            <version>1.6.5</version>
        </dependency>
        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
            <version>3.4</version>
        </dependency>
<dependency>
            <groupId>wsdl4j</groupId>
            <artifactId>wsdl4j</artifactId>
            <version>1.6.2</version>
        </dependency>
        <dependency>
            <groupId>javax.xml</groupId>
            <artifactId>jaxrpc</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jdt.core.compiler</groupId>
            <artifactId>ecj</artifactId>
            <version>4.2.2</version>
        </dependency>
    </dependencies>
</project>
3 将Tomcat源码导入idea中
使用maven命令编译项目,在编译的时候会报错。第一个是jdk1.8的版本,没细看,直接注释掉就行。
再重新编译报test文件夹下类的错误,花了时间没有解决,最终将test包去掉了。等到编译没有错误后就可以运行Tomcat了。
4 运行Bootstrap类
像运行其他类一样,在application中添加该类并且设置vm参数,如图:
VM的设置如下所示,将”D:\tomcat7”替换为你的路径:
-Dcatalina.home=D:\tomcat7
-Dcatalina.base=D:\tomcat7
-Djava.endorsed.dirs=D:\tomcat7\endorsed 
-Djava.io.tmpdir=D:\tomcat7\temp 
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
-Djava.util.logging.config.file=D:\tomcat7\conf\logging.properties
启动后如下图所示,可以看到输出的内容:
5 运行web工程 
网上大部分说到这里就结束了,但对于将web工程添加到Tomcat中看运行的流程没有说,配置项目就和在 server.xml中配置工程是一样的。在D:\tomcat7\conf下的 server.xml 中的 Host节点添加
<Context docBase="D:/tomcat7/webapps/ROOT" path="/mytomcat" debug="0"  reloadable="true"/> 
添加后重新启动Bootstrap类,启动完成后访问 http://localhost:8080/mytomcat/ 就可以看到Tomcat默认的工程了,如图:
6 你可以将自己的工程添加到server.xml中,启动的时候跟踪代码。
--------------------- 
作者:云的牧人 
来源:CSDN 
原文:https://blog.csdn.net/z583773315/article/details/56353311 
版权声明:本文为博主原创文章,转载请附上博文链接!
idea下导入Tomcat源码的更多相关文章
- 探秘Tomcat(一)——Myeclipse中导入Tomcat源码
		前言:有的时候自己不知道自己是井底之蛙,这并没有什么可怕的,因为你只要蜷缩在方寸之间的井里,无数次的生活轨迹无非最终归结还是一个圆形:但是可怕的是有一天你不得不从井里跳出来生活,需要重新审视井以外的生 ... 
- eclipse导入tomcat源码
		我的开发环境:windows7 64位 一.官网下载tomcat源码.在此奉上一站地址:http://archive.apache.org/dist/tomcat/: 二.编译源码生成.jar文件: ... 
- Eclipse导入Tomcat源码(转)
		想要研究下Tomcat的体系结构或者源码,最好将Tomcat的源码导入到ide中,编写实例进行代码跟踪(debug). 这里参考了网上一些资料,将自己操作过程记个流水账. 准备: 1.Tomcat源码 ... 
- Eclipse 导入 Tomcat 源码
		我的环境:Win10,Eclipse 4.8.0 Photon,JDK 10.0.2 1.下载Tomcat源码 我下载的是:apache-tomcat-9.0.12-src.zip 下载地址:ht ... 
- eclipse下导入jdk源码
		一直想好好看看jdk的源码,虽然可以直接解压jdk下的src看,但是终究不方便!后来发现可以导入到eclipse中,就在网上找了一些方法,下面就和大家分共享: step1:打开eclipse选择Win ... 
- Idea导入tomcat源码
		1.下载资源 下载主要包含两个包,已经编译的包和源码包,如图所示. 链接地址为: http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.93/bin ... 
- svn工具安装下载Tomcat源码以及导入eclipse
		安装 1.svn下载地址 https://tortoisesvn.net/downloads.html 2.语言包下载 3.先安装svn,在直接安装语言包 4.桌面右键可以看到相关svn信息 下载To ... 
- Tomcat源码导入eclipse的步骤
		Tomcat源码导入eclipse 一.下载源码 1. 进入Apache 官网:http://tomcat.apache.org/ 2. 在左边侧选择要下载的源码的版本. 3. 或者直接通过Ar ... 
- Tomcat源码分析一:编译Tomcat源码
		Tomcat源码分析一:编译Tomcat源码 1 内容介绍 在之前的<Servlet与Tomcat运行示例>一文中,给大家带来如何在Tomcat中部署Servlet应用的相关步骤,本文将就 ... 
随机推荐
- (1.13)mysql优化数据库对象
			(1.13)mysql优化数据库对象 1.mysql优化数据库对象 [1.1]数据库对象类型优化 select * from test1 procedure analyse(); ,); --不要为那 ... 
- MongoDB update修改器 目录
			MongoDB update修改器: 针对Fields的$修改器 $inc $set $unset MongoDB update修改器: 针对Arrays的$修改器 $push $pull $pop ... 
- laravel用crud修改产品items-新建resource controller和routing
			前面我们创建了laravel简单的items产品api,但是需要在数据库添加,如何在网页上直接添加呢?我们可以用view来操作crud(增加Create.读取查询Retrieve.更新Update和删 ... 
- composer错误提示Cloning failed using an ssh key for authentication的解决方法
			早上ytkah在测试laravel用composer安装一些插件时出现了一些错误,提示如下,是github的ssh密匙认证错误,提示要重新生成token,然后保存在/root/.config/comp ... 
- Repository  mirror 解析
			1 Repository(仓库) 1.1 Maven仓库主要有2种: remote repository:相当于公共的仓库,大家都能访问到,一般可以用URL的形式访问 local repository ... 
- content_type
			1.作用 将app名称与其中表关系进行保存 在models创建表时,关联到ContentType并不会产生实际的字段 2.使用 在models中代码 from django.db import mod ... 
- spring框架中的注解
- [js]js的表单验证onsubmit方法
			http://uule.iteye.com/blog/2183622 表单验证类 <form class="form" method="post" id= ... 
- [py]环境变量的获取os.environ.get和设置
			$ export name='maotai' $ python >>> import os >>> os.environ.get('name', "&qu ... 
- openshift 容器云从入门到崩溃之一《容器能解决什么问题》
			容器前时代 说到容器大多数人想到的就是docker,docker的迅速崛起使得使用容器的门槛大大降低了,我第一次接触docker还是14年,那时候作为一名运维部署应用还在大量使用虚拟化,从vmware ... 
