一、Tomcat源码导入Eclipse
1.下载源代码
Tomcat7的源代码在SVN上,
http://svn.apache.org/repos/asf/tomcat/tc7.0.x/tags/TOMCAT_7_0_27
从该分支上将TOMCAT_7_0_27 Checkout.
注:这里是tag里面的,也可以下载别的branch,比如trunk,只考虑tag比较稳定
2.项目构建
查看Checkout的TOMCAT_7_0_27的目录,发现tomcat 7是用ant来构建和管理的。
打开build.xml文件,它copy了两个现成的文件到TOMCAT_7_0_27目录下。
<!-- ============================ IDE Support ============================ --> <target name="ide-eclipse" depends="deploy, extras-webservices-prepare" description="Prepares the source tree to be built in Eclipse"> <!-- Copy the sample project files into the root directory --> <copy file="${tomcat.home}/res/ide-support/eclipse/eclipse.project" tofile="${tomcat.home}/.project"/> <copy file="${tomcat.home}/res/ide-support/eclipse/eclipse.classpath" tofile="${tomcat.home}/.classpath"/> <echo>Eclipse project files created. Read the Building page on the Apache Tomcat documentation site for details on how to configure your Eclipse workplace.</echo> </target>
在TOMCAT_7_0_27目录下执行使用 ant 命令
ant ide-eclipse
将其构建成Eclipse项目,可导入Eclipse。
3.导入Eclipse
将TOMCAT_7_0_27项目导入Eclipse, 发现报错
选择项目,右键选择Build Path>Configure Build Path
点击Add Variable...按钮,
点击Configure Variables…按钮,增加两个变量
ANT_HOME : 指向ant的安装目录
TOMCAT_LIBS_BASE : 指向依赖库的位置
将变量添加后,Eclipse重新编译,错误就没有了(我自己走到这里时仍然报错,后面会讲到)
3.运行
导入Eclipse并Build Path之后,项目已成功导入就可以运行了。
选择项目右键,选择Run As>Java Application, 它会自动搜索项目中的所有main函数,
选择org.apache.catalina.startup.Bootstrap,项目成功启动。
4.启动成功后打开下面网址
就可看到经典的欢迎页面
5、导入运行过程问题
1)导入后,Build Path时,引入依赖的jar时,TOMCAT_LIBS_BASE的目录的指向问题
在DOS命令窗口执行ant ide-eclipse命令时,可以看到其下载jar的目录
TOMCAT_LIBS_BASE : 指向的目录即是D:/usr/share/java
2) JDK版本问题
打开项目的build.xml文件,可以看到
Tomcat 7使用1.6,这里就不要擅自改了,因为我自己当前使用的JDK8,我就想改成1.8,我自己尝试了下失败了。
这里不是说改就不行,没有再做尝试了,有兴趣的可以尝试下。
因为JDK版本问题,在整个过程中碰到问题,可供参考:
ant ide-eclipse时总是编译失败
因为当前环境变量JAVA_HOME指向的是JDK8,之后调整到JDK6可以成功编译。
这里提一下,当我调整环境变量时,总是不起作用一直指向原先的JDK8,很苦恼。后来在网上看到有人建议把Java Path变量放置在PATH的最前面,我试了下果然就可以了。
项目构建成功导入Eclipse中,运行时启动正常,打开http://localhost:8080/总是报错
当然也是JDK版本的问题导致,一开始百思不得其解,纠结了整整一个下午到下班,早上再去运行时,发现运行使用的是JDK8。
之后去Run Configurations...调整JRE,将其调整为JDK6,但是只能调整为JDK8。突然意识到java compiler配置中 compiler compliance level 依然是1.8,然后项目右键把java compiler>compiler compliance level调整1.6。
Eclipse重新编译,运行项目,就可以成功地打开那个经典欢迎页面
总而言之,tomcat7使用JDK6,为此保证JDK版本一致。
二、Tomcat管理session
三、Tomcat中session的持久化