大家都瞭解在MS家族中iis作為internet伺服器可謂是赫赫有名,簡單,方便。
而且相關的web程式(asp,asp.net)也是比比皆是。
我們希望java開發的web程式可以和iis共存(共同使用80連接埠發布)。
這方面的教程網上很多,多數是copy之後又copy,以至於有些細節一直含糊不清,也導致我走了許多彎路。在此留個腳印防止日後的錯誤。
軟體及環境
windows server 2003
IIS 6.0
Tomcat 6.0.20
JDK 6.0
JK isapi_redirect-1.2.14 (很多情況下是由於isapi_redirect 的版本不符,我之前用過最新的1.2.28但是沒有整合成功 大家可以嘗試一下,這個軟體好像不太好找,雲棲社區為大家提供了本地下載,速度更快)
1.安裝IIS
控制台--> 添加刪除程式 --> 添加刪除windows組件
測試
2.安裝java環境,這裡要用jdk而不是jre
我安裝到
複製代碼 代碼如下:
c:\java\jdk1.6
不要忘記配置環境變數
3.安裝tomcat
我的安裝目錄是
複製代碼 代碼如下:
C:\tomcat6
啟動tomcat
測試8080連接埠
4.基本工作完成 下面我們進行整合
安裝isapi_redirect-1.2.14 當然也可以直接使用isapi_redirect-1.2.14.dll + 設定檔手動編寫,不過對於首次安裝還是建議使用安裝檔案,防止設定檔書寫產生誤差導致整合不成功。
一路next
安裝目錄是
C:\Program Files\Apache Software Foundation\Jakarta Isapi Redirector
5.開啟iis的管理介面
查看預設網站是否存在
中的jakarta的虛擬目錄
並查看屬性中
是否存在jakarta的篩選器。至於向上的綠色箭頭可能沒有(網上很多都指出要求由此,實際上只有配置之後首次訪問的時候,才進行載入)只要不是紅色就可以。
如果沒有則建立,
添加篩選器 名稱jakarta 檔案地址 C:\Program Files\Apache Software Foundation\Jakarta Isapi Redirector\bin\isapi_redirect.dll
建立虛擬目錄
別名 jakarta (必須) 路徑 C:\Program Files\Apache Software Foundation\Jakarta Isapi Redirector\bin\
存取權限
不要忘記 運行指令碼 執行 勾選
ok
8.我們在tomcat app下面隨便建立個工程 我這裡是目錄名0431la
修改設定檔
C:\Program Files\Apache Software Foundation\Jakarta Isapi Redirector\conf\uriworkermap.properties
# uriworkermap.properties - IIS## This file provides sample mappings for example wlb# worker defined in workermap.properties.minimal# The general syntax for this file is:# [URL]=[Worker name]/admin/*=wlb/manager/*=wlb/jsp-examples/*=wlb/servlets-examples/*=wlb# Optionally filter out all .jpeg files inside that context# For no mapping the url has to start with exclamation (!)!/servlets-examples/*.jpeg=wlb## Mount jkstatus to /jkmanager# For production servers you will need to# secure the access to the /jkmanager url#/jkmanager=jkstatus/0431la/*=wlb
我們重啟tomcat 和 iis 並訪問測試
iis的重啟可以通過滑鼠右鍵我的電腦 --> 管理 進行重啟
接下來我們可以進行測試
ok了 雖然這不是我們的最終結果 但是至少我們之前配置的沒有問題了
下面我們進行虛擬機器主機的配置
9.我們把0431la目錄放到c盤根目錄並配置tomcat的虛擬機器主機
複製代碼 代碼如下:
<Host name="www.0431.la" debug="0" appBase="c:\0431la" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="c:\0431la" debug="0" reloadable="true"/>
</Host>
10.在iis下面配置虛擬機器主機的映射目錄
並添加jakarta虛擬目錄 和 isapi篩選 配置過程可參考第五步
11.修改設定檔
C:\Program Files\Apache Software Foundation\Jakarta Isapi Redirector\conf\uriworkermap.properties
複製代碼 代碼如下:
# uriworkermap.properties - IIS
#
# This file provides sample mappings for example wlb
# worker defined in workermap.properties.minimal
# The general syntax for this file is:
# [URL]=[Worker name]
/admin/*=wlb
/manager/*=wlb
/jsp-examples/*=wlb
/servlets-examples/*=wlb
# Optionally filter out all .jpeg files inside that context
# For no mapping the url has to start with exclamation (!)
!/servlets-examples/*.jpeg=wlb
#
# Mount jkstatus to /jkmanager
# For production servers you will need to
# secure the access to the /jkmanager url
#
/jkmanager=jkstatus
/0431la/*=wlb
/*.jsp=wlb
讓jsp請求交由tomcat處理
呵呵
重啟iis 和 tomcat 看看我們的成果
我們可以考但jsp請求完全正常解析了。
複製代碼 代碼如下:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>" rel="external nofollow" >
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" >
-->
</head>
<body>
This is my JSP page. <br>
</body>
</html>
該jsp是myeclipse工程自動產生的。