ide跑tomcat_IDEA下Tomcat源码启动运行

1.     Tomcat源码下载

http://tomcat.apache.org/download-90.cgi

fe00398447f014879631a89d964b4b41.png

2.     IDEA导入源码

导入后入下图:

66f7ee8b0337befe801b6dc7d78ba2c4.png

2.1     导入架包

Tomcat源码下下来后会少了几个架包,代码是会报错的:ant-1.6.5.jar、easymock-3.4.jar、jaxrpc-api-1.1.jar、ecj-4.6.1.jar、wsdl4j-1.6.2.jar、objenesis-2.2.jar、hamcrest-core-1.3.jar,可以手动下载这些架包,也可以通过maven的pom.xml导入,如下:

4.0.0

org.apache.tomcat

tomcat9

tomcat9

9.0

apache-tomcat-9.0.0.M26-src

java

java

test

org.apache.maven.plugins

maven-compiler-plugin

3.5.1

UTF-8

1.8

1.8

org.apache.maven.plugins

maven-jar-plugin

2.6

junit

junit

4.11

test

ant

ant

1.6.5

org.easymock

easymock

3.4

wsdl4j

wsdl4j

1.6.2

javax.xml

jaxrpc

1.1

org.eclipse.jdt.core.compiler

ecj

4.6.1

2.2        引入tomcat其他模块的架包:

从其他安装版本的tomcat里拷贝lib文件夹放到tomcat的根目录。

698a7ef2314c493577c0a56ca378886b.png

2.3        删除webapps里没有用的应用

8085cd9bbf5adf89bd5e69d72d004651.png

2.4        删除其他module

0ec29796f7ff467ad3ef8c9d5809541d.png

3.       运行启动

源码启动Tomcat,是启动Bootstrap的main方法,其实startup.bat或者startup.sh也是启动Bootstrap的main方法。

3.1        配置Bootstrap

480d0b96c8d39f1efac92bd722308868.png

VM options配置如下:

-Dcatalina.home=D:\MyJob\Project\Maven\apache-tomcat-9.0.0.M26-src

-Dcatalina.base=D:\MyJob\Project\Maven\apache-tomcat-9.0.0.M26-src

-Djava.endorsed.dirs=D:\MyJob\Project\Maven\apache-tomcat-9.0.0.M26-src\endorsed

-Djava.io.tmpdir=D:\MyJob\Project\Maven\apache-tomcat-9.0.0.M26-src\temp

-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager

-Djava.util.logging.config.file=D:\MyJob\Project\Maven\apache-tomcat-9.0.0.M26-src\conf\logging.properties

3.2        启动Bootstrap

0ab1e17f9b85c12df4f67009cadfcbc3.png

出现Server startup in 3040 ms,就是启动成功

3.3        浏览器访问tomcat

ee73368eadaee5347bdd6ff127a383ef.png

4.       问题和解决方法

可能会碰到一下一些问题,没关系,碰到问题一个个解决。

4.1        问题一:module cycles:

报错如下:

88ef9605eb707d44202440ddc77582bb.png

原因:是在引入源码的时候没有去掉一些没有用到的module导致module循环引用了。

解决:Analyze->Analyze module Denpendencies如下图:

00bc3afd3c0e40d31038e140f9806eaa.png

可以看到apache-tomcat-9.0.0.M26-src里引用到WEB-INF这个module,WEB-INF里又引用了apache-tomcat-9.0.0.M26-src,只要删除WEB-INF这个module就行了。

打开Project Structure->Modules,删除WEB-INF,我一般是把除了apache-tomcat-9.0.0.M26-src的module都删了以免出现其他问题,暂时其他都用不到,如下图:

15bfc64a4d7b24d534d9768ae53033aa.png

4.2        问题二:jdbc-pool模块配置MANIFEST.MF文件报错

报错如下:

b0f0a5ff00377884a8e3d094e3e7f9d7.png

解决:不知道为啥下载下来的文件就有问题,这块反正也没用到,就直接删了。

4.3        问题三:lib文件夹缺失

6be1cf0f99719331170ff0dc505be7d6.png

解决:增加lib目录,从安装版的tomcat文件夹里考一份lib过来(里边的架包要一起考来)。

4.4        问题四:Tomcat启动失败

bc3832ac31bfa4b74a86076416aea52d.png

问题:examples应用下找不到监听的类

原因:看了下目录,classes里居然都是java类,没有编译

f0826794be4b7f80fc6a02d078d72888.png

解决:这个应用没啥用,直接删了只留下ROOT文件夹就好。

e938aac1a1531870a98eefdf72b389f2.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值