配置 Tomcat 6.0

2011-5-14来源:JSP教程人气:17929

1. 从 http://tomcat.apache.org 下载 tomcat 6 的 zip 包版本。


2. 解压到 C:\Tomcat6.0  (选取一个简单的目录名,有利于配置)


3. 打开命令提示符 cmd.exe ,进入目录 C:\Tomcat6.0\bin ,进行服务安装。

    (已有的 Tomcat 4.0 服务,已占用了 Apache Tomcat 这个 "服务显示名",因此需要修改 service.bat 这个文件,把里面的 "Apache Tomcat" 这个服务显示名改为 "Apache Tomcat 6" 。)

    执行安装:

    C:\Tomcat6.0\bin> service install


4. 修改 java_HOME 环境变量。“我的电脑”=>“属性”=>“高级”=>“环境变量”。

    要求 JAVA_HOME 指向 jdk1.5 或 jdk1.6


5. 修改配置,改变 web 所在目录。打开 conf/server.xml ,在 Host 内添加 Context :

        <Context path="" docBase="D:/Inetpub/wwwroot"></Context>


6. 添加数据库连接池。server.xml 中在 Context 内添加 Resource :

        <Resource name="jdbc/testDB" auth="Container" type="javax.sql.DataSource"
           maxActive="100" maxIdle="30" maxWait="10000"
           username="sa" passWord="ok" driverClassName="sun.jdbc.odbc.JdbcOdbcDriver"
           url="jdbc:odbc:DRIVER=SQL Server;UID=user;PWD=test;DATABASE=test_db;SERVER=127.0.0.1" />

        (后来发现,用 jdbc.odbc 时,同一个 conn 不能同时创建多个 statement 。需要另一个 jdbc 驱动才可以,driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test_db;" )

    WEB-INF/web.xml 中,在 web-app 内添加 resource-ref :

        <resource-ref>
          <description>Datasource</description>
          <res-ref-name>jdbc/testDB</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
        </resource-ref>

    在 jsp 代码中,添加:

      <%@page import="javax.naming.*"%>
      <%@page import="javax.sql.*"%>
      <%@page import="java.sql.*"%>
      <%
         Context ctx = new InitialContext();
         DataSource ds = (DataSource)ctx.lookup("java:/comp/env/jdbc/testDB");
         Connection conn = ds.getConnection();
         //etc.

         conn.close();
      %>


7. 与 IIS 集成。

    (1) 在 C:\Tomcat6.0 下创建目录 jakarta2 ,将 isapi_redirector2.dll 放入该目录。

    (2) 创建文本文件 C:\Tomcat6.0\conf\workers2.PRoperties ,内容为:

      [shm]
      file=C:/tomcat6.0/logs/jk2.shm
      size=1048576

      # Example socket channel, override port and host.
      [channel.socket:localhost:8009]
      port=8009
      host=127.0.0.1

      # define the worker
      [ajp13:localhost:8009]
      channel=channel.socket:localhost:8009

      # Uri mapping
      [uri:/*.jsp]
      [uri:/servlet/*]
      worker=ajp13:localhost:8009

    (3) 创建注册表文件,内容为:

      Windows Registry Editor Version 5.00

      [HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\2.0]
      "workersFile"="C:\\Tomcat6.0\\conf\\workers2.properties"
      "extensionUri"="/jakarta2/isapi_redirector2.dll"
      "logLevel"="error"
      "serverRoot"="C:\\Tomcat6.0\\"

    (4) 创建 IIS 虚拟目录: /jakarta2 ,实际绝对目录为 C:\Tomcat6.0\jakarta2

       目录权限为:“脚本和可执行文件”

    (5) 创建 ISAPI 过滤器。IIS管理中站点属性 => ISAPI 筛选器,添加:

       筛选器名称: jakarta2

       可执行文件: C:\Tomcat6.0\jakarta2\isapi_redirector2.dll

       (重新启动“World Wide Web Publishing”服务后,才能看到效果)


8. 牢记惨痛经验。( ISAPI 往往容易出错,并且不易调试。)

    在 IIS 虚拟目录中,要注意开放可执行文件权限。

    如果文件格式是 NTFS ,要注意 /jakarta 的实际目录及 /conf 目录的“安全”设置,要让 User 能够“读取、运行、写入”,通常就是 C:\tomcat6.0 的权限 => 替换子文件夹 权限。因为从其他地方复制过来的文件,不知道保留了什么权限。

    在 Windows 2003 中,IIS 管理器中专门有个 Web 服务扩展 管理,把 redirector.dll 添加为允许。

    装好 tomcat 6 服务之后,采用直接执行 startup.bat 能启动,但开启服务却不能启动。原因在于,使用服务启动时,采用原来的 jdk1.4 ,而直接启动时,采用的是环境变量 JAVA_HOME 里面的 jdk 1.6 。因此,需要使用 tomcat 6 服务管理界面,把 tomcat 6 使用的 jdk 设为 1.6 。


9. Tomcat 6 与 Tomcat 4 在 <%@ include file="inc.jsp" %> 时的区别:

    在 tomcat 4 中,被包含的文件的文件编码,以包含它的文件编码为准,换句话说,是按“字节”包含。

    在 tomcat 6 中,被包含的文件需要自己指定编码,换句话说,是按“字符”包含。而自己指定编码的
    <%@ page pageEncoding="GBK" %> 在 tomcat 4 中会以“多次指定编码”而报错。