熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Java Web開發Tomcat中三種部署項目的方法

2013-11-23 20:35:15  來源: Java開源技術 

  第一種方法在tomcat中的conf目錄中在serverxml中的<host/>節點中添加

  <Context path=/hello docBase=D:\eclipseforwebtools\workspace\hello\WebRoot debug= privileged=true>

  </Context>

  至於Context 節點屬性可詳細見相關文檔

  第二種方法將web項目文件件拷貝到webapps 目錄中

  第三種方法很靈活在conf目錄中新建 Catalina(注意大小寫)\localhost目錄在該目錄中新建一個xml文件名字可以隨意取只要和當前文件中的文件名不重復就行了該xml文件的內容為

  <Context path=/hello docBase=D:\eclipseforwebtools\workspace\hello\WebRoot debug= privileged=true>

  </Context>

  第個方法有個優點可以定義別名服務器端運行的項目名稱為path外部訪問的URL則使用XML的文件名這個方法很方便的隱藏了項目的名稱對一些項目名稱被固定不能更換但外部訪問時又想換個路徑非常有效

  第還有優點可以定義一些個性配置如數據源的配置等

  還有一篇詳細的

  直接放到Webapps目錄下

  Tomcat的Webapps目錄是Tomcat默認的應用目錄當服務器啟動時會加載所有這個目錄下的應用也可以將JSP程序打包成一個war包放在目錄下服務器會自動解開這個war包並在這個目錄下生成一個同名的文件夾一個war包就是有特性格式的jar包它是將一個Web程序的所有內容進行壓縮得到具體如何打包可以使用許多開發工具的IDE環境如EclipseNetBeansantJBuilder等也可以用cmd 命令jar cvf applicationnamewar package*

  甚至可以在程序執行中打包

  try{

  string strjavahome = systemgetproperty(javahome

  strjavahome = strjavahomesubstring(strjavahomelastindexof(\\))+\\bin\\;

  runtimegetruntime()exec(cmd /c start +strjavahome+jar cvf hellowar c:\\tomcat\\webapps\\root\\*

  }

  catch(exception   e){systemoutprintln(e)}

  webapps這個默認的應用目錄也是可以改變打開Tomcat的conf目錄下的serverxml文件找到下面內容

  <Host name=localhost debug= appBase=webapps unpackWARs=true autoDeloy=true xmlValidation=falase xmlNamespaceAware=false>

  在serverxml中指定

  在Tomcat的配置文件中一個Web應用就是一個特定的Context可以通過在serverxml中新建Context裡部署一個JSP應用程序打開serverxml文件在Host標簽內建一個Context內容如下

  <Context path=/myapp reloadable=true docBase=D:\myapp workDir=D:\myapp\work/>

  其中path是虛擬路徑docBase是JSP應用程序的物理路徑workDir是這個應用的工作目錄存放運行是生成的於這個應用相關的文件

  創建一個Context文件

  以上兩種方法Web應用被服務器加載後都會在Tomcat的conf\catalina\localhost目錄下生成一個XML文件其內容如下

  <Context path=/admin docBase=${catalinahome}/server/webapps/admin debug= privileged=true></Context>

  可以看出文件中描述一個應用程序的Context信息其內容和serverxml中的Context信息格式是一致的文件名便是虛擬目錄名您可以直接建立這樣的一個xml文件放在Tomcat的conf\catalina\localhost目錄下例子如下

  注意刪除一個Web應用同時也要刪除webapps下相應的文件夾禍serverxml中相應的Context還要將Tomcat的conf

  \catalina\localhost目錄下相應的xml文件刪除否則Tomcat仍會岸配置去加載……

  tomcat部署web應用主要有以下幾種方式

  )拷貝你的WAR文件或者你的web應用文件夾(包括該web的所有內容)到$CATALINA_BASE/webapps目錄下

  )為你的web服務建立一個只包括context內容的XML片斷文件並把該文件放到$CATALINA_BASE/webapps目錄下這個web應用本身可以存儲在硬盤上的任何地方這種context片斷提供了一種便利的方法來部署web應用你不需要編輯serverxml除非你想改變缺省的部署特性安裝一個新的web應用時不需要重啟動Tomcat

  )同方法只是將context片斷放在CATALINA_BASE\conf\Catalina\localhost目錄下這種方法比方法>要有效筆者經過多次實驗發現方法不如後面這種方法好用前者多次出現系統打不開的情況

  )直接在serverxml中</Host>前加上Context片斷使用這種方法時tomcat會自動在CATALINA_BASE\conf\Catalina\localhost目錄下生成一個文件片斷方法同方法具有同樣效果這種方式需要將ROOT目錄刪除才行

  另外為了讓tomcat只運行conf/serverxml中指定的web應用可以有以下幾種辦法

  實現一

  )將要部署的WEB應用放在webapps以外的路徑並在serverxml相應的context中的docBase指定

  )刪除webapps中的所有文件夾以及conf/catalina/localhost下所有xml文件

  注webapps是serverxml中的Host元素的appBase屬性的值

  實現二

  )修改serverxml中Host元素的屬性添加或修改deployXML=false deployOnStartup=false autoDeploy=false

  )含義

  deployXML=false: 不部署conf/catalina/localhost下的xml相應的WEB應用deployOnStartup=false : tomcat啟動時不部署webapps下的所有web應用autoDeploy=false避免tomcat在掃描改動時再次把webapps下的web應用給部署進來


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28718.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.