8. Jakarta Tomcat

8.1. 什么是 Tomcat

 

Tomcat 是 servlet 容器,用于 Java Servlet 和 JavaServer Pages 技术的官方参考实现。Java Servlet 和 JavaServer Pages 规范由 Sun 在 Java Community Process 下开发。

从作者的角度来看

 
--jakarta.apache.org 

Tomcat 是 jserv 的后继者,jserv 已停止开发。Tomcat 支持 sun 定义的最新 jsp 和 servlet-API。不幸的是,Tomcat 很难从源代码构建,因为它使用自己的构建系统 "ant"。如果您想从源代码构建,还有很长的先决条件列表。有关更多详细信息,请参阅 http://jakarta.apache.org/tomcat/tomcat-4.0-doc/BUILDING.txt - 祝你好运,并向作者提供一些反馈。

同时,HOWTO 提供了一些对从二进制文件安装的 Tomcat 的基本支持。

作者正在寻找一些志愿者,他们尝试从源代码构建 Tomcat 并告知所需的步骤

8.2. 先决条件

8.2.1. Java2

8.2.1.1. 什么是 Java2

请参阅 java.sun.com

对于本 HOWTO 来说内容太多,请参阅 http://java.sun.com/j2se/1.3/docs/relnotes/features.html

8.2.2. 下载二进制文件

转到 http://java.sun.com/j2se/1.3/ [1],选择您的平台并按照网站上的步骤操作。

8.2.3. 安装二进制文件

执行二进制文件
chmod +x j2sdk-1_3_1_02-linux-i386.bin

./2sdk-1_3_1_02-linux-i386.bin

接受许可后,解压缩文件并将结果目录移动到/usr/lib并设置适当的符号链接

8.3. 下载二进制文件

来源站点:http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.1.18/src/jakarta-tomcat-4.1.18-src.tar.gz

8.3.1. 安装二进制文件

cd /usr/local

tar -xvzf jakarta-tomcat-4.1.8.tar.gz

cd jakarta-tomcat-4.1.8

cd bin

rm *.bat

echo export JAVA_HOME=/usr/lib/java/ >> /etc/profile
. /etc/profile

要启用 Tomcat 管理器,您需要修改/usr/local/jakarta-tomcat-4.1.8/conf/tomcat-users.xml添加用户 “admin” 或具有 “manager” 角色。结果应如下所示

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager"/>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="admin" password="secret" roles="manager"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="role1" password="tomcat" roles="role1"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
</tomcat-users>

现在您应该能够启动 tomcat
/usr/local/apache/jakarta-tomcat-4.1.8/bin/startup.sh

现在您应该能够连接到:http://localhost:8080/index.jsp

8.4. mod_jk

8.4.1. 下载源代码

如果您希望在您的 Apache Webserver 中有一个原生接口,您需要构建 mod_jk,它必须在这里单独下载:http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.1.18/src/jakarta-tomcat-connectors-4.1.18-src.tar.gz

8.4.2. 构建和安装

tar -xvzf jakarta-tomcat-connectors-4.1.18-src.tar.gz

cd jakarta-tomcat-connectors-4.1.18-src/jk/native

./buildconf
./configure --with-apxs=/usr/local/apache/bin/apxs

make
make install

8.4.3. 自定义

接下来是令人烦恼的部分,配置文件的自定义。首先编辑/usr/local/jakarta-tomcat-connectors-4.1.18-src/jk/conf/workers.properties,并将文件复制到/usr/local/apache/conf

我做了一个示例workers.properties它适用于 Tomcat 发行版附带的示例 JSP 和 servlet。它基于 Tomcat 中的示例 workers.properties。

示例 8. workers.properties

workers.tomcat_home=/usr/local/jakarta-tomcat-4.1.18

# workers.java_home should point to your Java installation. Normally
# you should have a bin and lib directories beneath it.
#
workers.java_home=/usr/lib/java2

# You should configure your environment slash... ps=\ on NT and / on UNIX
# and maybe something different elsewhere.
#
ps=/

# The workers that your plugins should create and work with
#
worker.list=worker1

#------ DEFAULT ajp13 WORKER DEFINITION ------------------------------
#---------------------------------------------------------------------
# Defining a worker named ajp13 and of type ajp13
# Note that the name and the type do not have to match.
#
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13

#------ CLASSPATH DEFINITION -----------------------------------------
#---------------------------------------------------------------------
# Additional class path components.
#
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)tomcat.jar

# The JVM that we are about to use
#
# Unix - Sun VM or blackdown
worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)lib$(ps)i386$(ps)classic$(ps)libjvm.so

# Setting the place for the stdout and stderr of tomcat
#
worker.inprocess.stdout=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stdout
worker.inprocess.stderr=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stderr

接下来,您需要配置您的 apache 配置文件httpd.conf。以下示例与 Tomcat 提供的示例相匹配。

LoadModule jk_module libexec/mod_jk.so
AddModule mod_jk.c

JkWorkersFile /usr/local/apache/conf/workers.properties
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /examples/servlet/* worker1
JkMount /examples/*.jsp worker1 

重启 Apache 后,您现在应该能够通过 Apache 连接到您的 JSP。例如:http://localhost/examples/jsp/num/numguess.jsp

对于进一步的步骤,例如安装您的 servlet 和 jsp 文件,您需要自行负责...

Tip环境变量
 

如果 Tomcat 无法启动和/或您的 servlet 无法启动,最常见的错误是没有在CLASSPATH变量中。

注意

[1]

还有 Java 1.4.1 版本可用,但 Tomcat 似乎无法在该 Java 版本上运行。