天天看點

整合IIS5.1和Tomcat5.5.12

終于可以在80端口跑JSP了,爽!把IIS和TOM貓內建在一起工作還真不容易,差點直接拿刀在硬碟上刻了。 :-)

還是簡要記錄一下這個過程,以免篩子腦袋兩天以後就啥都漏沒了。

運作環境簡介

作業系統版本:Windows XP Professional 2002 SP2

IIS版本:5.1

Tomcat版本:5.5.12

JDK版本:1.5.0_05

Connector版本:2.0.4(點這裡下載下傳)

安裝軟體

1、J2SDK安裝與配置;

2、Tomcat安裝與配置;

3、IIS安裝與配置。

安裝完畢後,确定它們可以獨立運作。

(PS:以上安裝與配置文檔可能版本較老,不過,經測試完全勝任指導本文使用版本的安裝與配置。)

整合步驟

1、将IIS和Tomcat預設網站指向同一站點(關于這一點,我會繼續摸索一下,目前沒搞明白為什麼必須這樣);

2、isapi_redirector2.dll拷貝到任意目錄下,我這裡用的是:%TOMCAT_HOME%\tc5iis\;

3、在%TOMCAT_HOME%\conf\目錄下建立workers2.properties,鍵入以下内容:

[shm]

file=%TOMCAT_HOME%/logs/jk2.log

size=1048576

# 實際運用時把所有的localhost和8009換成你自己的IP和端口

[channel.socket:localhost:8009]

port=8009

host=localhost

# define the worker

[ajp13:localhost:8009]

channel=channel.socket:localhost:8009

# Uri mapping

[uri:/*.jsp]

[uri:/web/*]

worker=ajp13:localhost:8009

# define the worker

[status:status]

# Uri mapping

[uri:/jkstatus/*]

worker=status:status

PS:紅色部分需要被替換為絕對路徑,路徑用“/”。

4、建立系統資料庫檔案tc5iis.reg(檔案名任取),鍵入以下内容:

[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\2.0]

  "serverRoot"="%TOMCAT_HOME%"

  "extensionUri"="/jakarta/isapi_redirector2.dll"

  "workersFile"="%TOMCAT_HOME%\\conf\\workers2.properties"

  "logLevel"="INFO"

PS:紅色部分需要被替換為絕對路徑,路徑用“\\”。

将該檔案導入到系統資料庫中。(我在導入該檔案時,始終提示必須為二進制值才可以導入,然後導入失敗;不得不直接在系統資料庫編輯器中編輯,不過效果是一樣的。)

5、配置IIS

打開IIS管理器,選中站點[屬性](右擊菜單)==》選中ISAPI篩選器,[添加]“jakarta”,指定絕對路徑到isapi_redirector2.dll目錄==》[确定],關閉[屬性]==》選中站點[建立]-[虛拟目錄],填入别名jakarta,指定絕對路徑到isapi_redirector2.dll目錄,然後在[執行]複選框打勾==》OK!

6、重新開機Tomcat、IIS服務并測試

在站點根目錄下,建立HelloWorld.jsp,源碼如下:

<html>

  <head>

    <title>Hello World</title>

  </head>

  <body>

    <% out.print("Hello World!"); %>

  </body>

</html>

浏覽器位址欄分别輸入:http://localhost:8080/HelloWorld.jsp和http://localhost/HelloWorld.jsp看看結果。如果一樣,那麼一切OK!

雖然整合看起來已經在發揮作用了,可是還有很多的問題存在。原來Tomcat下的子站點還是不能被80端口直接通路,而且有些JSP頁面中的代碼不能被正确解析,可是這些在8080端口是OK的,看來還要花時間深入了解一下。

呵呵,無論如何現在IIS和TOM貓已經成為同僚了,他們彼此有再多的不滿,也要在我的上司下變得馴服一點。

PS:英文文檔裡提到jk2.properties檔案,我不知道這個應在TOM貓的哪個目錄下存放,而且不知道它到底是幹什麼的。難道現在還存在的這寫小問題和這有關?