Tomcat教程

变换JSP编译器

在默认情况下Tomcat 5.5和更高版本使用一个绑定的Eclipse JDT编译器编译JSP页。在 htfp://如ww.eclipse.org/jdt/core上査看Eclipse JDT核心页,/解这一编译器的更多信息a JDT编译器是用纯Java编写的,在Tomcat上执行与JDK的javac命令相同。它足一个相对 较新的Java编译器,因此不像javac或其他老编译器那样成熟或充满活力。

因为Tomcat绑定了JDT编译器,所以Tomcat在JRE或完整的JDK之上运行时,可以编译并 充当JSP页容器。即使JDK具有javac编译器(因为Tomut包含了自身的Java编译器), Tomcat也不需要JDK的Java编译器,只要Tomcat绑定的Java编译器可以编译javac所能编 译的所有JSP页就可以了。因为JDT编译器是较新产品,所以它还有一个走向成熟的过程,而且您会发现它没有完全实现Java 1.5和1.6的一些源码语言特性。因为它是Eclipse IDE使用的Java编译器,且正努力使其完整并富有活力,所以大量的人正使用并测试 它。您还会遇到一种情况,希望让Tomcat在JDT编译器和JDK的javac编译器上进行切 换,所以需要介绍本节的内容。

Tomcat 5.5的编写方式允许您可以选择如下两种主要的hva编译器:

使用内嵌的JDT Java编译器,这是默认设置。

进行一些修改,使Tomcat能用Apache Ant编译JSP页。

如果您选择启用第二种方式,那您就可以配置Ant使用自身可支持的任何Java编译器。默 认情况下,Ant使用JDK的javac编译器。

要将Tomcat从使用默认JDT编译器的状态切换到使用Ant的状态,必须执行下列步骤:

1.移动Tomcat的CATALINA_HOME/common/lib/jasper-compiier-jdt.jar文件,使其在公共类加载器下未被使用;

2.在common/lib/directory下安装 Apache Ant 的ant.jar 文件;

3.将JDK的tools.jar文件放到公共类加载器下。

2,下面是具体处理办法。首先,将JDT编译器的jar文件移到一个新的文件夹下,使其不被 包含在Tomcat的类加载器中。它必须不驻留在common/lib目录下,且不能以.zip或.jar作 为文件扩展名。笔者随后会处理:

# cd $CATALINA_H0HE /common/lib
# mv jasper-compiler-jdt.jar jasper-cojnpiler-jdt.jar.moved

紧接着,必须将Ant的jar文件安装到common/lib目录下。要完成这一任务,需要下载一个Apache Ant二进制发行版目标文件。虽然Tomcat6.0以与Ant 1.7.0配合完美而著称,但 可能在新的版本下也能工作。首先使用最新的稳定版,如果无法工作,再尝试使用1.7.0 版。如下所示:

# cd ~/
# wget http://archive.apache.org/dist/ant/binaries/apache-ant-l.7.0-bin.tar.gz 
# tar zxvf apache-ant-i,7,o-bin.tar*gz
# cd $CATALIMA_HOME/common/lib
# cp ~/apache-ant-1.7.0/lib/ant.jar.
# chmod a+r ant.jar

然后,启动在classpath下含文件的Tomcat。处理这一过程的最简方法就是 将tools.jar复制到CATALINA_HOME/common/lib目录下,或者通过调用启动Tomat:

$ $CATALINA_HOME/bin/catalina.sh javac start

启动以后,Tomcat不再使用JDT Java编译器编译JSP,而是使用Ant编译器,默认是 javac。该javac选项实标应该用ant命名,因为您实际是在使用JDT编译器与Ant编译器 之间切换。

一旦通过Ant编译器进行编译,那么只要修改CATALINA_HOME/conf/web.xml中的 JspServlet元素配置,就可以配置Ant允许的编辑设置了。

关注微信获取最新动态