win7+ii7+tomcat7執行javaWeb開發的程式
轉載請註明出處:陳科肇
1.前提準備:
作業系統:windows 7 旗艦版 x64
JDK:jdk1.7.0_79_x64(安裝目錄:D:\JAVA\jdk1.7.0_79_x64)
tomcat:32-bit64-bit Windows Service Installer(安裝目錄:D:\0tomcat7SerV)
tomcat-connectors:tomcat-connectors-1.2.40-windows-x86_64-iis
iis:iis7
一個可執行的javaWeb程式:wwo.war
2.開始
首先得把執行的環境搭配起來,需要的執行環境和配置操作如下:
a.jdk:
這個是無用質疑的,是java程式執行的環境。
根據自己需求,進行下載
本例子用的JDK版本:jdk1.7.0_79_x64
安裝操作這裡就不做多介紹了,如果你安裝jdk完成之後。
在C:\Windows\System32\cmd.exe程式裡執行:java -version命令,看到大概如下的輸出,表示你的jdk已安裝成功。
b.安裝tomcat服務C:\Users\Administrator>java -version java version "1.7.0_79" Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
注:這裡我用的是安裝版tomcat服務
根據自己需求,進行下載:
下載完成下來的是一個可執行的 .exe檔案,安裝很簡單,雙擊執行,可一路預設選項安裝即可(也可以根據自己需要修改安裝目錄以及Tomcat Manager的登入使用者及密碼)。
本例子tomcat版本:32-bit64-bit Windows Service Installer
tomcat預設訪問埠為:8080
等你安裝完成之後,在瀏覽器位址列輸入:http://localhost:808
看到如下畫面,說明你tomcat安裝成功。
注:如果你安裝的tomcat是64位的,那麼你對應的jdk也是64位的,否則,反之。
c.tomcat-connectors
在IIS中把JSP相關的請求傳送到Tomcat需要Tomcat Connector的支援。
需要自己需求,進行下載。
本例子tomcat-connectors版本:tomcat-connectors-1.2.40-windows-x86_64-iis
下載下來,解壓,可以看到裡面包含有:isapi_redirect.dll,這個檔案(不是這個名字,也要改成這個名字)。
接下來,我們把isapi_redirect.dll這個檔案放到D:\0tomcat7SerV\bin\jk目錄下,沒有這個目錄,自己建立一個。
接下來,建立四個檔案,分別為:
IISResTomcat.reg
(執行即可,用來匯入登錄檔檔案)
內容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0]
"extension_uri"="/jakarta/isapi_redirect.dll"
"log_file"="d:\\0tomcat7SerV\\logs\\isapi.log"
"log_level"="debug"
"worker_file"="d:\\0tomcat7SerV\\conf\\workers.properties"
"worker_mount_file"="d:\\0tomcat7SerV\\conf\\uriworkermap.properties"
注:雙擊執行這個檔案,即匯入登錄檔中 如果把"log_level"="realease"改成"log_level"="debug"日誌裡會增長的很快,裡面寫了轉發的情況
(存放位置:D:\0tomcat7SerV\conf)
內容如下:
#Configuration file for the Jakarta ISAPI Redirector
# The path to the ISAPI Redirector Extension, relative to the website
# This must be in a virtual directory with execute privileges
<span style="color:#ff0000;">extension_uri=/jakarta/isapi_redirect.dll</span>
# Full path to the log file for the ISAPI Redirector
<span style="color:#ff0000;">log_file=d:\0tomcat7SerV\logs\isapi_redirect.log</span>
# Log level (debug, info, warn, error or trace)
<span style="color:#ff0000;">log_level=info</span>
# Full path to the workers.properties file
<span style="color:#ff0000;">worker_file=d:\0tomcat7SerV\conf\workers.properties</span>
# Full path to the uriworkermap.properties file
<span style="color:#ff0000;">worker_mount_file=d:\0tomcat7SerV\conf\uriworkermap.properties</span>
uriworkermap.properties
(存放位置:D:\0tomcat7SerV\conf)
內容如下:
#所有訪問都轉發到tomcat中
/*=worker1
#所有*.jsp的才向tomcat轉發
#/*.jsp=worker1
#所有/jsp-examples/*的才向tomcat轉發,我們這裡要求將WebReport工程下的所有內容轉發
#/jsp-examples/*=worker1
#所有的gif檔案都不向tomcat轉發,而由IIS處理,注意這表示是所有的而不僅僅是根下的
#!/*.gif=worker1
workers.properties
(存放位置:D:\0tomcat7SerV\conf)
內容如下:
# 工作站的名稱任意,但須注意前後一致,多個工作站以“,”分割
#worker.list=ajp13w
# 工作站的型別:ajp13是IIS與Tomcat通訊協議的名稱
#worker.ajp13w.type=ajp13
# 注意此處的host需要與主機或者設定域名的名稱一致
#worker.ajp13w.host=www.chenkezhao.com
# worker.ajp13w.host=localhost
# ajp13協議的通訊埠
#worker.ajp13w.port=8009
# 負載因子
#worker.worker1.lbfactor=1
#----------------
workers.tomcat_home=D:\0tomcat7SerV
workers.java_home=D:\JAVA\jdk1.7.0_79_x64
ps=\
worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
d.新增本地對映
C:\Windows\System32\drivers\etc\hosts 中新增一個本地對映的域名
新增內容如下:
#我的主機域名
127.0.0.1 www.chenkezhao.com
e.配置IIS
程式位置:控制面板\所有控制面板項\管理工具\Internet 資訊服務(IIS)管理器。
如果找不到,可以在:控制面板\程式\程式和功能-》找到“開啟或關閉Windows功能”,點選。
這些加多點也無所謂。
安裝完成後,啟動程式。
確定。
接著選中根目錄,然後在功能視圖裡,雙擊“ISAPI和CGI限制”項->新增,
接下來,選中網站站點,右鍵新增應用程式
完成之後點選這個應用程式,進入處理程式對映,點選右手邊的"編輯處理程式許可權...",
把"執行"項勾打上
隨後為站點新增ISAPI篩選器以便Connector能擷取到URL請求.點選"我的部落格" -
> "ISAPI 篩選器" ,把isapi_redirect.dll新增進去,名稱可以隨便起.
完成這個步驟以後,Connector就可以對請求進行過濾,把符合配置檔案中的請求重寫到
extension_uri指定的uri進行處理,這裡為/jakarta/isapi_redirect.dll,然後isapi_redirect.dll
再轉發到tomcat的8009由tomcat處理完成後再循原路發回去.
f.完成了IIS的配置,接下就是給tomcat配置站點
開啟檔案:D:\0tomcat7SerV\conf\server.xml
<Engine>標籤下找到 <Host>進行配置
<Engine>
...
<Host name="www.chenkezhao.com" appBase="."
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="/" reloadable="true" docBase="E:\myItem\wwo" ></Context>
</Host>
</Engine>
如果網站是UTF-8則需要修改這裡
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
改成
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="utf-8" />
最後 重啟Tomcat
在瀏覽器位址列中輸入:http://www.chenkezhao.com
效果如下:
參考:
問題參考:
之前我建立的是“虛擬目錄”,其它步驟都是一樣的。但就是報404了
把問題解決了。
把建立“虛擬目錄”換成“應用程式”即可解決,不知道有沒有人遇過我這種情況,這兩個有什麼區別,今天我把問題記錄下來,方便後人參考。
iis:iis7