从源码安装tomcat 6.0.18
?
从源码安装tomcat 6.0.18一分钟未到,Ant就告诉我们一个错误并提示我们编译失败,就是找不到http://sunsite.informatik.rwth-aachen.de/eclipse/downloads/drops/R-3.2-200606291905/eclipse-JDT-3.2.zip文件。
(如果您本机没有这个jar包,请从http://commons.apache.org/downloads/download_logging.cgi处下载)
请打开org.apache.jasper.compiler.Compiler类的源代码,在generateJava()方法的第一行打一个断点,然后在Eclipse的调试状态下运行Tomcat,等Tomcat运行后,打开我们的浏览器,在地址栏中输入http://localhost:8080/examples/jsp/jsp2/el/basic-comparisons.jsp并回车,然后我们可观察到Eclipse此时切换至调试视图:
上面的小实验表明我们可以在Eclipse中通过Debugger观察Tomcat的内部运行机理。另外补充一点,上面的generateJava方法是将jsp动态编译至java class,这个方法只是在第一次请求或者Jsp源码发生变化时执行,如果您再次在浏览器中发送同样的请求,您将看不到上图的Debug界面,因为该方法不再执行。
?
10????????????其他JDK版本引起的问题报如下错误:
?
??? [javac] C:\tomcat_6.0.18\src\share\tomcat6-deps\dbcp\src\java\org\apache\tom
cat\dbcp\dbcp\datasources\PerUserPoolDataSource.java:52:org.apache.tomcat.dbcp.
dbcp.datasources.PerUserPoolDataSource不是抽象的,并且未覆盖 java.sql.Wrapper
中的抽象方法isWrapperFor(java.lang.Class<?>)
这是JDK版本1.6造成的。需要安装JDK版本1.5.
安装1.5之后,原来的1.6不必卸载,
为了把两个版本的JDK区别开,可以键入如下命令
set path=C:\Program Files\Java\jdk1.5.0_06\bin
set JAVA_HOME=C:\ProgramFiles\Java\jdk1.5.0_06
?
还有一点很有意思。
Tomcat6以前版本的源代码分散在好几个子项目中,他们分别叫做jakarta-servletapi-5,jakarta-tomcat-5,jakarta-tomcat-catalina,jakarta-tomcat-connectors和jakarta-tomcat-jasper,我觉得Tomcat的开发者可能嫌这样做太麻烦了,所以Tomcat6版本中将这些子项目都合并在一起了。但是,这种做法不利于我们阅读理解源代码。
?