当前位置: 代码迷 >> Web前端 >> Tomcat中支配Java Web应用
  详细解决方案

Tomcat中支配Java Web应用

热度:110   发布时间:2013-02-27 10:48:11.0
Tomcat中部署Java Web应用

转自:?http://huibin.iteye.com/blog/629205

在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署。在下文中$CATALINA_HOME指的是Tomcat根目录。?

一、静态部署?

? ? ?静态部署指的是我们在服务器启动之前部署我们的程序,只有当服务器启动之后,我们的Web应用程序才能访问。以下4中方式都可以部署:?

? ? 0.在Tomcat中部署war包很简单:

首先,直接把相应的war包放到$TOMCAT_HOME/webapps下,不用建目录;

然后,修改$TOMCAT_HOME/conf/server.xml,在Host配置段中添加类似于如下内容:

<Context path="/" docBase="hdfs-webdav.war" debug="0" privileged="true" reloadable="true"/>?

? ? 1、将PetWeb目录拷贝到$CATALINA_HOME\webapps下,然后启动服务器就可以了。这种方式比较简单,但是web应用程序必须在 webapps目录下。访问地址如下:?

http://localhost:8080/PetWeb/?

? ?2、这种方式可以不必将PetWeb目录拷贝到webapps下,直接在F:\部署。方法如下,更改$CATALINA_HOME\conf \server.xml文件,在<host>标签内添加<Context>标签,内容如下:?

<Context docBase="F:/PetWeb" reloadable="false" path="/Pet"/>?

其中reloadable="false"表示当应用程序中的内容发生更改之后服务器不会自动加载,这个属性在开发阶段通常都设为true,方便 开发,在发布阶段应该设置为false,提高应用程序的访问速度。docBase为路径,可以使用绝对路径,也可以使用相对路径,相对路径相对于 webapps。path属性的值是访问时的根地址。访问地址如下:http://localhost:8080/Pet/?

? ? 3、这种方式和第二种方式差不多,但是不是在Server.xml文件中添加Context标签,而是在$CATALINA_HOME\conf \Catalina\localhost中添加一个xml文件,如Pet.xml,内容如下:?

<Context docBase="F:/PetWeb" reloadable="false" />大家可能发现和第二种方式差不多,但是缺少了path属性,这种方式服务器会使用.xml的名字作为path属性的值。访问地址如 下:http://localhost:8080/Pet/?

? ??

? ? 我们刚才是将PetWeb文件夹部署在了服务器中,我们知道可以将Web应用程序的内容打成.war包,然后在部署在服务器上。打包请参考如下步骤:?

? ? 1、打开命令提示符(Start-->Run-->cmd)?

? ? 2、设置jdk环境变量

? ? 3、在命令提示符中进入F:\PetWeb文件后,键入如下命令:?

jar ..\Pet.war *.* 这样在F:\下应该有Pet.war文件。其中..表示当前目录的父目录。?

? ? ?部署Pet.war文件非常简单,将刚才有docBase="F:\PetWeb"更改为docBase="F:\Pet.war"或者直接将其拷贝到 webapps下也可以。重新启动服务器就可以将Pet.war部署为一个Web应用程序了。如果你够细心的话你会发现,服务器将Pet.war文件解 开,并且在webapps下面又生成了一个Pet文件夹,然后把Pet.war的内容拷贝到里面去了。我们可以通过以下方式取消自动解压缩,配置方式如 下:?

<Context docBase="F:/PetWeb" reloadable="false" unpackWAR="false"/>?

二、动态部署?

? ? 动态部署是指可以在服务器启动之后部署web应用程序,而不用重新启动服务器。动态部署要用到服务器提供的manager.war文件,如果 在$CATALINA_HOME\webapps\下没有该文件,你必须去重新下载tomcat,否则不能完成以下的功能。要想使用该管理程序必须首先编 辑$CATALINA_HOME\conf\tomcat-users.xml文件,内容如下:关于这个文件的更多内容,请参考Java Web应用程序的安全模型二?

<tomcat-users>?

<role rolename="tomcat"/>?

<role rolename="role1"/>?

<role rolename="manager"/>?

<user username="coresun" password="coresun" roles="manager"/>?

<user username="tomcat" password="tomcat" roles="tomcat"/>?

<user username="both" password="tomcat" roles="tomcat,role1"/>?

<user username="role1" password="tomcat" roles="role1"/>?

</tomcat-users>?

然后在浏览器中键入如下地址:?

http://localhost:8080/应该看到一个漂亮的加菲猫了吧。点击左边的Tomcat Manager链接,提示输入用户名和密码,本文都是coresun,然后可以看到以下页面:?

?

在Context Path(option):中输入/Pet?

XML Configration file URL中要指定一个.xml文件,比如我们在F:\下建立一个Pet.xml文件,内容如下:?

<Context reloadable="false" />docBase不用写了,因为在下一个文本框中填入。或者更简单点,这个文本框什么都不填。?

在WAR or Directory URL:中键入F:\PetWet或者F:\Pet.war都可以,然后点击Deploy按钮,看看上面是不是已经看到了你web应用程序,名字就是你 Context Path(option):中的名字。?

?

如果你部署.war文件还有更加简单的方式,下面还有个Select WAR file upload点击浏览选择.war文件,然后点击Deploy也可以。

  相关解决方案