在tomcat中使用context节点部署工程

tomcat部署工程有很多种: 1、最常用的方法是在开发阶段通过Myeclipse直接部署,然后可以进行调试等操作。 2、把工程目录下的WebRoot目录直接复制到tomcat目录webapps中。 3、把工程打包成war包直接复制到tomcat目录webapps中。 4、使用context节点配置工程路径: 1、将工程打包成war之后,在server.xml配置context节点。
Xml代码   收藏代码
  1. <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
  2.       <Context path="/demo" docBase="E:\demo.war" reloadable="false" privileged="true" debug="0"/>
  3. </Host>
注意的是:path不能为空,因为有时可能不需要输入工程名或者path配置的访问路径来访问我们的站点( http://127.0.0.1:8080/),就把path设置为空,但是war包是需要解压到tomcat目录webapps中,如果path为空,tomcat就不知道压缩包解压之后应该取一个什么样的文件夹名,所以部署不成功。 2、直接将context节点中的docBase属性指向工程目录的WebRoot目录(或者是解压war包之后的文件夹目录,如果不想通过项目名访问就不要将解压文件夹放在webapps目录下)
Xml代码
  1. <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
  2.     <Context path="" docBase="E:\demo\WebRoot" reloadable="false" privileged="true" debug="0"/>
  3. </Host>
path可以为空也可以设置一个访问路径,如:/demo。如果只想通过IP来访问,就把端口设置为80,把path设置为空。 这里要注意的是:在工程中lib目录中的jar包应该全部放在lib目录下,不要在lib目录下建文件夹并且把jar放到文件夹中,这样做在tomcat启动的时候(如果在web.xml中配置了监听器,而监听器的jar包在lib目录下的文件夹中)就会抛出java.lang.ClassNotFoundException,如果没有配置日志,直接启动tomcat,就只会显示严重错误:Error listenerStart与Context [] startup failed due to previous errors。(通过MyEclipse部署项目与通过war包部署项目,当工程部署成功之后,去看webapps中部署的工程中的lib目录,会发现,所有原本被放在自己建的文件夹中的jar包,现在全部放到了lib目录下) 3、很灵活,在conf目录中,新建 Catalina\localhost目录,在该目录中新建一个xml文件,名字可以随意取,与path后的那个名字也可以不一致,但是访问的时候,必须是xml文件的名字。如:xml文件名为demo,path的名称为hello,那么访问的时候为: http://localhost:8080/demo/,如果为 http://localhost:8080/hello/就会出现404错误。
Xml代码   收藏代码
  1. <Context path="/hello" docBase="E:\workspace\hello\WebRoot" debug="0" privileged="true">
  2. </Context>

你可能感兴趣的:(tomcat)