1. 程式人生 > >win7+ii7+tomcat7執行javaWeb開發的程式

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已安裝成功。

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)
b.安裝tomcat服務

注:這裡我用的是安裝版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"日誌裡會增長的很快,裡面寫了轉發的情況

isapi_redirect.properties

(存放位置: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