如何使用JK2連接器配置Tomcat 5.0.x和IIS 5.0協同工作

2004.5 臧士睿 qq:10743383

網絡轉載請保留作者聲明,盈利性印刷刊物轉載請聯繫 [email protected]

本文中所有操作都已經在Window2000 Advance Server和Window2000 Professional下測試通過

所有內容:New IIS5.0+Tomcat5.0.x HowTo
專題討論區:http://hh.cc163.com/form/cgi-bin/forums.cgi?forum=4
主頁:http://hh.cc163.com/


目錄

  1. 摘要
  2. 準備工作
  3. 下載
    1. Java 2 SDK 1.4.2 (或更高版本)
    2. Tomcat 5.0.24 (或更高版本)
    3. Tomcat Web Server 連接器
  4. 安裝
    1. Java 2 SDK
    2. Tomcat 5
    3. Tomcat JK2 IIS 連接器
  5. 設置
    1. Tomcat
    2. Tomcat IIS 連接器
    3. Windows
    4. IIS
      1. 設置ISAPI篩選器
      2. 創建ISAPI篩選器使用的虛擬目錄
      3. 重新啓動IIS服務
  6. 測試
    1. Tomcat
    2. IIS
  7. 參考文獻

 


最近遇到一個項目,無法避免的需要將IIS和Tomcat協調起來協同工作,同時解析asp和jsp兩種腳本語言。
查看Tomcat官方HowTo,幾經操作並未成功。查看網上討論,發現中文資料介紹的都是tomcat4.x版本的配置方法,老舊已經不適用。後來對照多篇英文資料,學習、操作之後獲得成功。

鑑於討論此問題的中文資料之匱乏,遂決定將我的配置過程整理,但願對同好者有所幫助。

此文章論述內容、書寫格式仿照了http://virtualict.net/support/kb/iis6-Tomcat5-JK2.html,並引用了其中部分文字。

在我配置、翻閱資料的過程當中,感覺到了IIS、Apache Tomcat、JK2等官方文檔對此問題論述的不詳盡,甚至有時候感覺到了被誤導,以至增加了解決問題的難度,期待與大家討論。

本人的配置環境
Window2000 Professional+sp4
(Window2000 Advance Server+sp4)
IIS 5.0
j2sdk1.4.2_04
jakarta-tomcat-5.0.24
jakarta-tomcat-connectors-jk2.0.4

配置過程中涉及的路徑如果沒有特殊說明,則都不是系統要求,大家可以修改以適應自己機器的環境。

這裏是另一個自動安裝程序,使用方法本文不做討論
Isapi redirector jk2.02 Installer - Integrating Tomcat with IIS

摘要

這是一篇講述如何安裝、配置Tomcat 5 Java Servlet & JSP服務到微軟IIS 5.0服務器的文章,這篇文章是本人自己配置過程和經驗的總結,並推薦了一些給過本人極大幫助的文檔。
掌握方法的朋友只需要15分鐘就能完成整個配置過程。

準備工作

3.gif

Microsoft Windows 2000 professional, IIS5 已經安裝並工作正常

需要下載的軟件:

  • Java 2 Standard Edition Software Development Kit 1.4.2.04 (或更高版本)
  • Jakarta Tomcat 5.0 (或更高版本)
  • jakarta Tomcat Connectors-JK2.0.4(或更高版本)

下載

由於版本更新的問題,這裏沒有給出軟件的準確下載地址,但根據下面的鏈接用戶可以很容易找到所需軟件的確切地址。

Java 2 SDK 1.4.2 (或更高版本)

來自 java.sun.com/downloads/ 選擇 the J2SE 1.4.2 (或更高版本) All platforms

39.gif

 

40.gif

然後按照提示進入文件列表頁面,下載文件

41.gif


Tomcat 5.0.24 (或更高版本)

來自Apache Jakarta的for Win的編譯版本。Tomcat 5.x 應該在頁面的底部。寫此文章的時候Tomcat已經發布了5.0.25版,不過配置過程是一樣的。

42.gif

選擇 5.0.24 可執行文件 (或更高版本)


Tomcat Web Server 連接器

同樣在Apache Jakarta下載頁面。Tomcat Web Server 連接器就在Tomcat 5.0.24鏈接的下面

43.gif

選擇 JK2 編譯版本

44.gif

選擇 win32, 然後選擇下載jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip

45.gif

注意 這個目錄列表顯示的文件名稱被截斷,所以你需要觀察瀏覽器狀態欄中的提示,確認你準備下載的文件應該是以"...iis.zip"爲結尾的


安裝

建議大家把下載的文件放在同一個文件夾裏。

5.gif

Java 2 SDK

運行j2sdk-1_4_2_04-windows-i586-p.exe 按照提示安裝

4.gif

可以更改安裝路徑到你習慣的地方

 

Tomcat 5

運行jakarta-tomcat-5.0.24.exe 按照提示安裝.

6.gif

如果要改變安裝路徑,可以在這個步驟操作。

7.gif

可以更改至其它路徑,如 C:/Tomcat 5.0

8.gif

設定密碼,妥善保管密碼,不推薦空密碼。

9.gif

這個步驟是選擇本地機器的jdk路徑,一般情況下,安裝文件會自動搜索並顯示,如果沒有正確顯示,也可以手動更改。

10.gif

成功安裝後,程序會提示啓動tomcat並查看readme文檔

注意: 啓動Tomcat之前要確定系統沒有其它服務已經佔用8080端口(Tomcat默認端口)和8009端口( Tomcat's AJP13 連接器端口)

Tomcat正常啓動後會在系統欄加載圖標

38.gif

在圖標上右鍵鼠標可以看到一些設置項目

1.gif

點擊Configure...看到如下顯示,選擇Startup type爲automatic自動啓動。

2.gif


Tomcat JK2 IIS 連接器

解壓縮jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip得到如下文件夾

14.gif

進入/bin/後可見

15.gif

剪切/複製isapi_redirector2.dll 文件到Tomcat's bin/目錄中

17.gif

新建目錄win32/i386/ 並粘貼isapi_redirector2.dll

18.gif

記住這個路徑,稍後配置IIS的時候還會用到。這個路徑不是系統要求的,可改變!

現在可以刪除jakarta-tomcat-connectors-jk2.0.4-win32-IIS目錄,這裏面的文件已經沒用了。實際上在jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip中我們只用到了isapi_redirector2.dll一個文件


設置

Tomcat

進入 Tomcat's conf/ 文件夾.

19.gif

要支持 JK2 連接器, 你可能需要修改jk2.properties文件. 大多數情況下保留此文件的默認狀態即可,本人的多次配置過程都沒有修改過這個文件。

## THIS FILE MAY BE OVERRIDEN AT RUNTIME. MAKE SURE TOMCAT IS STOPED
## WHEN YOU EDIT THE FILE.

## COMMENTS WILL BE _LOST_

## DOCUMENTATION OF THE FORMAT IN JkMain javadoc.

# Set the desired handler list
# handler.list=apr,request,channelJni
#
# Override the default port for the socketChannel
# channelSocket.port=8019
# Default: 
# channelUnix.file=${jkHome}/work/jk2.socket
# Just to check if the the config  is working
# shm.file=${jkHome}/work/jk2.shm

# In order to enable jni use any channelJni directive
# channelJni.disabled = 0
# And one of the following directives:

# apr.jniModeSo=/opt/apache2/modules/mod_jk2.so

# If set to inprocess the mod_jk2 will Register natives itself
# This will enable the starting of the Tomcat from mod_jk2
# apr.jniModeSo=inprocess

現在輪到workers2.properties,這個文件需要自己創建,內容如下(附件中有一個copy)
紅色的這行要注意了,把"C:/Tomcat 5.0/work/"這個路徑修改成你自己的路徑,而jk2.shm這個文件不用擔心,它現在不存在也沒有關係,它會在需要的時候自動被創建。

[shm:]
info=Shared memory file. Required for multiprocess servers
file=C:/Tomcat 5.0/work/jk2.shm
size=1000000

[channel.socket:localhost:8009]
info=Ajp13 worker, connects to tomcat instance using AJP 1.3 protocol
tomcatId=localhost:8009

[uri:/jsp-examples/*]
info=JSP examples, map requests for all JSP pages to Tomcat.
context=/jsp-examples

[uri:/servlets-examples/*]
info=Servlet examples, map requests for all servlets to Tomcat.
context=/servlets-examples

看過網上的討論,有些朋友配置過程中的問題就出現在這裏,所以多講幾句:
這個文件中指定了解析jsp的目錄,也就是"http://xxxxx/dir/aa.jsp"這個url中的"dir",比如我們的網站中要增加/dir/這個路徑,並使這個路徑下面的jsp能夠被解析,那你就需要在workers2.properties文件中增加這樣一段話

[uri:/dir/*]
info=JSP examples, map requests for all JSP pages to Tomcat.
context=/dir

並且在Tomcat的工作目錄中建立"/dir/"這個目錄。比如我們到現在爲止,Tomcat的工作目錄是默認的"/ROOT/",那我們就需要在"/ROOT/"路徑下新建"/dir/"目錄,並放置aa.jsp文件。重起服務之後,我們才能用"http://xxxxx/dir/aa.jsp"這樣的url來訪問aa.jsp文件。
過去有的朋友誤以爲"dir"是IIS工作目錄中的路徑,運行時無法顯示頁面,或者jsp代碼沒有解析,其實就是這個路徑設置的問題。
值得注意的是如果IIS和Tomcat的工作目錄同時存在"/dir/",那麼服務器會把此路徑連接至Tomcat處理。
當你的Tomcat和IIS一起正常工作後,你可以隨時修改這個文件以增加新的目錄來支持jsp的運行。

這裏是關於worker2.properties這個文件更多的規則。

右鍵系統欄中的Tomcat服務圖標,選擇"Stop service",關閉服務。

21.gif

在"管理工具-服務"中找到"Apache Tomcat"服務,並確定它已經啓動。

22.gif


Tomcat IIS 連接器

你已經放置isapi_redirector2.dll在你的路徑下,本例子中是
C:/Tomcat 5.0/bin/win32/i386

23.gif

現在需要添加一些必要的註冊信息到註冊表,redirector被IIS調用時會讀到。建立一個.reg文件

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Foundation/Jakarta Isapi Redirector/2.0]
"workersFile"="C://Tomcat 5.0//conf//workers2.properties"
"extensionUri"="/jakarta/isapi_redirector2.dll"
"logLevel"="debug"
"serverRoot"="C://Tomcat 5.0//"

在記事本中寫入上面的文字,並保存爲 reg.reg (附件中有一個copy)

雙擊.reg文件

24.gif

成功則顯示如下:

25.gif

註冊表中可以看到:

26.gif

 

現在可以刪除這個.reg文件了

Windows

添加兩個系統環境變量,他們是CATALINA_HOMEJAVA_HOME.

在桌面上右鍵"我的電腦",選擇"屬性-高級-環境變量"

27.gif

CATALINA_HOME 指向你的Tomcat安裝目錄,本例子中是 C:/Tomcat 5.0

JAVA_HOME 指向Java SDK安裝目錄,本例子中是 C:/j2sdk1.4.2_04


IIS

安裝ISAPI篩選器

進入ISAPI篩選器 界面

28.gif

點擊 添加 按鈕,鍵入一個新的篩選器名稱,名稱可以隨意起

IIS Add ISAPI Filter dialog

再點擊 瀏覽 按鈕,選擇isapi_redirector2.dll。本例子中是
C:/Tomcat 5.0/bin/win32/i386/isapi_redirector2.dll

29.gif

點擊確定。IIS重起之後新的篩選器纔會生效,我們先不重起,稍後再做。

30.gif

點擊確定保存修改,退出站點屬性對話框

注意Note: 你可以選擇特定的站點進行設置,增加篩選器,也可以對所有站點同時增加篩選器
在IIS樹中右鍵左側的"計算機",調出屬性,選擇"編輯"調出主屬性對話框

31.gif

調出主屬性對話框,添加篩選器。

32.gif


創建篩選器所需要的虛擬目錄

選擇需要加載Tomcat服務站點,右鍵選擇新建,再選擇虛擬目錄

33.gif

創建虛擬目錄,別名爲jakarta。注意這個名字是固定值,不要拼寫錯誤!

34.gif

指定目錄爲isapi_redirector2.dll所在目錄. 本例子中是 C:/Tomcat 5.0/bin/win32/i386

35.gif

選擇執行,使之可用

11.gif

成功建立虛擬目錄之後,你應該在管理其中看到如下顯示。

36.gif

 

重新啓動IIS服務

選擇計算機,右鍵,選擇重新啓動IIS

12.gif

選擇重新啓動Internet服務,點擊確定

13.gif

操作系統中管理工具-事件查看器中可以查看服務的啓動情況,isapi_redirector2.dll會把它的出錯信息寫入事件查看器,而不是像較早版本那樣寫入一個文件中。

啓動之後在IIS控制檯,站點屬性中的ISAPI篩選器的列表中,可以看到Tomcat連接器的狀態,有綠色向上箭頭就對了

37.gif


測試

Tomcat

首先測試Tomcat安裝的例子能否運行,使用Tomcat自己的服務器和端口

測試服務器中的servlets: http://localhost:8080/servlets-examples/

測試服務器中的JSP: http://localhost:8080/jsp-examples/

測試Tomcat管理界面: http://127.0.0.1:8080/admin/

IIS

現在我們訪問IIS中的同一個例子,來測試連接器是否工作,注意修改地址和端口跟你的IIS相符合

http://localhost/servlets-examples/

http://localhost/jsp-examples/

 

如果一切正常,則你已經使得IIS5在Tomcat JK2 IIS 連接器的工作下可以解析jsp&servlet程序了,祝賀你。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章