速動畫教程第二十一集 IIS 集成 Tomcat

?

下載地址: http://this.oksonic.cn

制作環境:

? Windows 2003 + IIS6、jre1.5.0_06、apache-tomcat-5.5.17

?

首先需要做以下準備工作

? 1、安裝好 Tomcat IIS6 ,并且都能正常運行

? 2、Tomcat的端口沒做任何修改

? 3、下載好 集成需要的 isapi_redirector2.dll 文件

??? http://archive.apache.org/dist/tomcat/tomcat-connectors/jk2/binaries/win32/jakarta-tomcat-connectors-jk2.0.4-win32-IIS.zip?

?

集成步驟

? 1、配置環境變量 JAVA_HOME TOMCAT_HOME

? 2、將 isapi_redirector2.dll 文件拷貝到 TOMCAT_HOME 中的任意一個目錄中,如:TOMCAT_HOME/iis 此目錄需要新建

? 3、新建一個目錄存放站點,如:d:\web 并在其中新建一個 ROOT 目錄,此目錄作為站點的默認起始目錄

? 4、打開 IIS 控制臺,新建一個站點,如果自己有域名的話可以在主機頭中輸入自己的域名,

???? 如: www.oksonic.cn 這樣就不會和原來的默認網站沖突了,現在需要將默認網關停止后再新建

? 5、新建一個虛擬目錄,名稱為:jakarta 這個名稱不能改變,路徑為 TOMCAT_HOME/iis ,也就是放 dll 文件的 目錄

???? 打開站點屬性窗口,進入 ISAPI 篩選器,點擊添加銨鈕,在篩選器名稱中輸入 jakarta ,這個名字也不能修改,所以要注意是否正確,

???? 在可執行文件中選擇 TOMCAT_HOME/iis/isapi_redirector2.dll 文件

???? 進入主目錄選項卡,在彈出窗口中選擇添加,這里對 jsp 文件和 struts do 訪問方式進行映射配置,點擊添加銨鈕,

???? 可執行文件選擇? TOMCAT_HOME/iis/isapi_redirector2.dll ,擴展名為 jsp ,同樣對 do 也進行配置

? 6、新增一個 Web 服務擴展,擴展名隨意填,如: Tomcat ,要求的文件選擇 TOMCAT_HOME/iis/isapi_redirector2.dll ,

???? 選中設置擴展狀態為充許項,然后確定

? 7、拷貝 jk2.properties 、 workers2.properties 兩個文件到 TOMCAT_HOME/conf 目錄中

?

jk2.properties 文件內容如下:

request.tomcatAuthentication=false

?

workers2.properties 文件內容如下:( 以下第二行的文件路徑需要根據自己的配置進行修改 )

[shm]

file= d:/Tomcat/logs/jk2.log

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:/*.do]

[uri:/do/*]

worker=ajp13:localhost:8009

?

# define the worker

[status:status]

?

# Uri mapping

[uri:/jkstatus/*]

worker=status:status

?

注意 # Uri mapping 部份,現在已經開通了對jsp文件和struts的兩種訪問方式,如果還有其它的文件訪問需要轉到Tomcat來處理的話都在此進行配置

?

? 8、現打開注冊表文件, 修改綠色字體部份,注意路徑表示符

文件內容如下:

Windows Registry Editor Version 5.00

?

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

"serverRoot"=" D:\\Tomcat "

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

"workersFile"=" D:\\Tomcat\\conf\\workers2.properties "

"logLevel"="DEBUG"

?

??? 修改完成后將導入注冊表(雙擊此文件)

?

? 9、修改 tomcat 的配置文件 server.xml

?

??? 使用以下內容替換原來的 <host>...</host> 內容, 綠色字體為需要修改的內容

?

<Host name=" localhost " debug="0" appBase=" d:\web " unpackWARs="true" autoDeploy="true">

? ????? <Logger className="org.apache.catalina.logger.FileLogger" directory="logs"? prefix=" oksonic_log. " suffix=".txt" timestamp="true"/>

? ????? <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"? prefix=" oksonic_access_log. " suffix=".txt" pattern="common" resolveHosts="false"/>

??? </Host>

?

? 拷貝 Tomcat_Home/webapps/ROOT 下的文件到 web/ROOT 中

?

重啟IIS和Tomcat服務

?? 打開瀏覽器輸入 http://localhost/index.jsp 進行測試,正常的話可以顯示 Tomcat 默認的首頁

?? 這時再進入到 IIS 的管理工具中查看ISAPI篩選器,這時應該顯示一個綠色向上的箭頭,如果沒有綠色箭頭的話應該是有一個紅色的向下的箭頭,這表明是配置有問題,請檢查,如果一個箭頭也沒有的話應該是沒有使用瀏覽進行測試,只要有一遍測試的話就應該有箭頭了

?? 這里配置完成后有一個問題,就是無法使用 http://localhost 直接打開 index.jsp ,

?? 即使是配置了IIS6的默認首頁也不行,我采用的方法是使用一個 index.htm 文件來進行跳轉,文件內容如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd";>

<html>

<head>

<meta http-equiv="refresh" content="0; url=/index.jsp">

</head>

?

<body>

?

</body>

</html>

?

整個配置基本完成,現在需要解決亂碼的問題,如果有遇到亂碼問題的話

?

這里使用的全是 UTF-8

?

在項目中要使用 UTF-8 的編碼,并配置了過濾器,過濾編碼也是 UTF-8

?

修改 Tomcat 的配置文件 server.xml ,在端器配置的地方加入 URIEncoding="UTF-8"

如:

<Connector URIEncoding="UTF-8"

port="8080"?????????????? maxHttpHeaderSize="8192"

?????????????? maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

?????????????? enableLookups="false" redirectPort="8443" acceptCount="100"

?????????????? connectionTimeout="20000" disableUploadTimeout="true" />

?

?

這里是Tomcat使用的編碼,還要配置集成時使用的編碼,因為集成時使用的端口為 8009 所以在配置8009端口的地方也要加入? URIEncoding="UTF-8"

如:

<Connector URIEncoding="UTF-8"

port="8009"

?????????????? enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

?

好了,重啟 IIS 服務和 Tomcat 服務,整個集成工作就完成了

?

在這里我無法對亂碼問題進行測試,這是我在開發時所發現并已經解決的方法,希望對大家有用。