999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Tomcat7 動態部署的研究

2014-12-31 00:00:00秦毅
人間 2014年24期

摘要:Web應用程序可以通過在Web服務器啟動之前進行部署,這種靜態部署的方式并不靈活,部署和卸載都需要對服務器進行操作,而動態部署則可以在服務器運行的狀態下部署Web應用程序。Tomcat7通過自帶的Web應用程序manager,全面支持動態部署,并且能夠對服務器中Web應用程序進行管理。

關鍵詞:Web服務器;靜態部署;動態部署;Web應用程序

中圖分類號:[G714] 文獻標識碼:A 文章編號:1671-864X(2014)08-0184-02

一、引言

動態部署,名如其意,就是在Web服務器運行時部署依賴它的Web應用程序。對于所欲的Web服務器來說,動態部署是一個非常有必要實現的功能,除了能部署新的Web應用程序之外,還能夠對存在的項目取消部署,而這些都是在服務器仍處于運行狀態的情形下實現的。本文以Apache Tomcat服務器為例,對其動態部署的方式進行研究。

二、Tomcat7簡介

Tomcat是由Apache軟件基金會下屬的Jakarta項目開發的一個Servlet容器,依照原Sun Microsystems提供的技術規范,實現了對Servlet和JavaServer Page(JSP)的支持,并提供了作為Web服務器的一些特有功能[1]。由于Tomcat本身也內含了一個HTTP服務器,它也可以被視作一個單獨的Web服務器。因為同屬于Apache軟件基金會的下屬項目,經常會有程序員混淆Apache Web Server和Tomcat,認為它們就是一個服務器;其實不然,Apache Web Server 是一個用 C 語言實現的 HTTP Web Server,一個完全的Web服務器。

Tomcat7始于2010年,最初的版本是7.0.0beta,在2011年1月11日發布的Tomcat 7.0.6已經成為穩定版本,這是Tomcat 7分支的第一個穩定版本,用來取代2007年2月發布的Tomcat 6,Tomcat7修復大量的原有bug,包括其中各個模塊,如Catalina,Coyote,Jasper等,其中包括一些比較嚴重的如內存泄露問題,線程安全問題等。

三、Tomcat7下實現動態部署

Tomcat通過自帶的Web應用程序manager來實現對容器中的Web應用程序目錄或是WAR文件進行動態部署。

1.manager權限設置。

由于版本的更新,Tomcat7和6相比較,在權限配置方面變的更細微,原來Tomcat6中的manager應用程序的權限在7中被細分為4種,這些權限的名字都被定義在Tomcat7提供的manager應用程序目錄下的\WEB-INF\web.xml文件中,它們是分別是manager-gui,manager-status,manager-script和manager-jmx,其描述見表1。

表1

角色名描述

manager-gui允許訪問HTML接口

manager-status僅允許訪問訪問“Server Status”頁面

manager-script允許訪問“Server Status”頁和文檔里友好的簡單text接口

manager-jmx允許訪問“Server Status”頁和JMX代理接口

其中HMTL接口包含manager應用中的圖形界面,有效能防止跨站點偽造請求(Cross-Site Request Forgery,CSRF)的攻擊,但是text和JMX就不具備這樣的能力。text接口通過查詢字符串的方式在地址欄用manager支持的指令管理容器內的Web應用程序。這里以manager-gui為例,來看一下web.xml文件中權限的設置和角色的聲明,代碼如下:

HTML Manager interface (for humans)

/html/*

manager-gui

MemoryRealm是域(Realm)的一種,用來讀取保存在\conf\tomcat-users.xml文件中的角色和用戶名、密碼的關聯信息。

在tomcat-user.xml文件中配置角色和管理用戶的代碼如下:

tomcat-users.xml文件可以設置不同的角色,使用這些角色名和權限的前提條件是在包含它們的Web應用程序目錄下的web.xml中聲明。

當完成上述操作之后,便可以通過瀏覽器打開tomcat的歡迎界面,選擇“Manager App”入口,把tomcat-users.xml文件中自定義的用戶名和密碼在彈出的登錄對話框中輸入,即進入tomcat7中的manager應用中,動態的配置當前tomcat容器中所有被部署的Web應用程序,包括manager本身。

2.圖形化的動態部署。

完成Tomcat7中manager應用的權限配置后,在命令提示符下啟動Tomcat服務器,在瀏覽器中輸入http://localhost:8080進入Tomcat的歡迎界面,選擇“Manager App”入口,在彈出的用戶名和密碼對話框中輸入tomcat-users.xml配置好的用戶名和密碼,則可以進入圖形化動態部署模式。

圖形化部署模式提供下列9種功能:

· 通過直接指定WAR文件,部署一個新的Web應用程序

· 通過在服務器文件系統中指定Web應用程序的上下文路徑來部署一個新的應用

· 提供服務器中當前被部署的所有Web應用程序列表和這些應用中被激活的會話信息

· 通過對\WEB-INF\classes和\WEB-INF\lib目錄中文件的監視和反射,重新加載容器中已存在的Web應用程序

· 提供當前操作系統和Java虛擬機的屬性列表

· 提供可用的全局可用的JNDI資源列表,在部署工具中通過在部署描述符中嵌入元素即可訪問JNDI資源

· 啟動已經停止的Web應用程序

· 停止正在運行的Web應用程序

· 卸載已經部署的Web應用程序,并刪除其根目錄的文檔

圖形話部署模式可以是開發人員方便快捷對Web應用程序進行部署,并對容器中存在的應用進行管理。

3.指令化的動態部署。

除了圖形化的部署方式外,manager應用程序還提供指令化的動態部署模式。指令化的部署實際上是在地址欄通過text接口輸入部署的指令和參數即可實現指令化的部署模式,所有manager已知的指令通過在獨立的請求URI指定而被執行。

指令化的動態部署模式URI格式如下:

http://{host}:{port}/manager/text/{command}?{parameters}

{command}代表manager應用下程序員需要執行的指令,{parameters}表示針對URI中的指令提供的查詢參數。

manager中常用指令如下:

list:提供Tomcat容器中當前Web應用程序列表

reload:重新加載Web應用程序

serverinfo:服務器信息

sessions:會話管理

start:啟動Web應用程序

stop:停止Web應用程序

deploy:部署新的Web應用程序

undeploy:卸載存在的Web應用程序

這些指令有些可以單獨使用,如list,而大部分需要使用“?”連接參數一起使用,manager應用提供的參數包括path、version、war等。

本文主要闡述deploy指令部署新的Web應用程序。

通過Web應用程序上下文部署

http://localhost:8080/manager/text/deploy?path=/foo

其中Web應用程序的上下文通過path參數指定為/foo。

通過URL部署Web應用程序目錄

http://localhost:8080/manager/text/deploy?path=/footoowar=file:/path/to/foo

其中Web應用程序的上下文通過path參數指定為/footoo,程序目錄則通過war參數指定,由于部署的是文件目錄,所以需要指定文件協議file。

通過URL部署WAR

http://localhost:8080/manager/text/deploy?war=jar:file:/path/to/bar.war!/

使用URL部署WAR的特殊之處在于需要把jar和file連接使用,并且WAR文件不能在URL中以擴展名war結束,需要在之后添加“!/”。

通過Host appBase部署Web應用程序目錄

http://localhost:8080/manager/text/deploy?war=foo

Host appBase表示服務器的應用程序跟目錄,在Tomcat中即為webapps,使用這種方式部署需要事先把Web應用程序目錄拷貝到appBase中,不需要指定應用程序的上下文,直接提供Web應用程序在appBase下的相對路徑即可。

通過Host appBase部署WAR

http://localhost:8080/manager/text/deploy?war=bar.war

和部署目錄方式一致,通過Host appBase部署WAR時,事先要把WAR文件拷貝到appBase目錄下,然后使用war參數直接指定WAR文件即可。

四、總結

Tomcat7作為一款靈巧的HTTP服務器,最新版本已經提供了對Servlet3.0和JSP2.3的支持。通過Tomcat7提供的動態部署方式能夠簡單快速的對Web應用程序進行部署,使用圖形化的模式直觀且方便,并且可以輕松的對容器中已經部署的Web應用程序和會話進行管理;指令化的模式能夠讓程序員以更快捷的方式對Web應用程序進行部署和卸載,前提是熟悉manager下的指令和參數。

參考文獻:

[1]維基百科.Apache Tomcat.2013-6.[DB/OL]http://zh.wikipedia.org/wiki/Apache_Tomcat

[2]孫衛琴. Tomcat與Java Web開發技術詳解(第2版).電子工業出版社[M].2009-1。

[3] Budi Kurniawan著. 曹旭東譯. 深入剖析Tomcat.機械工業出版社[M].2012-1。

主站蜘蛛池模板: YW尤物AV无码国产在线观看| 亚洲欧洲综合| www.亚洲天堂| 国产免费福利网站| 欧美h在线观看| 亚洲精品无码久久久久苍井空| 亚洲男人的天堂视频| 日韩欧美国产另类| 欧美一级在线看| 国产精品性| 国产后式a一视频| 99视频精品全国免费品| 茄子视频毛片免费观看| 午夜激情福利视频| 丰满人妻中出白浆| 97国产精品视频自在拍| 成人在线天堂| 国产免费高清无需播放器| 一区二区三区在线不卡免费| 欧亚日韩Av| 91在线无码精品秘九色APP| AV天堂资源福利在线观看| 亚洲第一色视频| 天堂va亚洲va欧美va国产| 亚洲国产成人综合精品2020 | 亚洲无码免费黄色网址| a色毛片免费视频| 亚洲日韩AV无码精品| 国产黄在线观看| 99热最新网址| 在线va视频| 亚洲三级a| 欧美高清三区| 99久久精彩视频| 国产微拍一区| 无码一区18禁| 欧美全免费aaaaaa特黄在线| 国产精品一区不卡| 园内精品自拍视频在线播放| 久久国产精品77777| 免费一级无码在线网站| 国产视频久久久久| 91精品国产无线乱码在线| 欧美日韩国产综合视频在线观看| 一本大道视频精品人妻| 欧美日韩激情在线| 一区二区三区在线不卡免费| 97国产精品视频自在拍| 凹凸国产熟女精品视频| 香蕉伊思人视频| 国产剧情一区二区| 亚洲人成色在线观看| 又猛又黄又爽无遮挡的视频网站| 国产精品无码久久久久久| 青青草原国产av福利网站| 99中文字幕亚洲一区二区| 精品福利视频导航| 老色鬼久久亚洲AV综合| 中文字幕日韩丝袜一区| 国产精品lululu在线观看| 40岁成熟女人牲交片免费| 久久亚洲综合伊人| 99在线视频免费| 久久精品亚洲专区| 在线观看国产精品第一区免费| 国产精品亚洲一区二区三区z| 国产成人91精品| 国产女人18毛片水真多1| 国产在线视频导航| 成人夜夜嗨| 日本不卡在线视频| 免费一级成人毛片| 亚洲高清日韩heyzo| 亚洲欧洲日产国产无码AV| 青草91视频免费观看| 凹凸国产分类在线观看| 亚洲狠狠婷婷综合久久久久| 91免费片| av无码久久精品| 女人一级毛片| 中文字幕第4页| 国产精品丝袜视频|