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 并告知所需的步骤
请参阅 java.sun.com
对于本 HOWTO 来说内容太多,请参阅 http://java.sun.com/j2se/1.3/docs/relnotes/features.html
转到 http://java.sun.com/j2se/1.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
如果您希望在您的 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。
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 |
接下来是令人烦恼的部分,配置文件的自定义。首先编辑/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 文件,您需要自行负责...
![]() | 环境变量 |
---|---|
如果 Tomcat 无法启动和/或您的 servlet 无法启动,最常见的错误是没有在CLASSPATH变量中。 |
[1] | 还有 Java 1.4.1 版本可用,但 Tomcat 似乎无法在该 Java 版本上运行。 |