tomcat war包部署
平常的开发我们都是通过IDE进行项目的部署,但有时候我们不得不进行手工部署(例如在Server上)。
手工部署分为以下几步:
第1步: 用maven打war包 (假如得到的war包名为: appkit-web.war)
mvn package
如果想打包过程中跳过测试,采用以下命令:
mvn package -Dmaven.test.skip=ture
第2步: 把war包拷贝到tomcat安装的webapps目录下
cp target/appkit-web.war ~/software/apache-tomcat-7.0.54/webapps/
第3步: 启动tomcat (我的tomcat的根目录为:/Users/aborn/software/apache-tomcat-7.0.54)
./bin/catalina.sh run
然后在浏览器中打开 http://localhost:8080/appkit-web/index.html
这里有个问题,它默认根目录是要加项目名的,如上加了appkit-web, 这样有些资源文件加载不出来(因为资源文件是以根目录为相对路径)。
要想修改这个根目录,只要修改Tomcat的server.xml配置文件(它在 conf/server.xml)
在<Host>与</Host>之间加上以下这句话
<Context path="/" docBase="appkit-web" debug="0" privileged="true"/>这个配置的path指的是根目录,docBase指的是war名。
这样只要在浏览器上打开:http://localhost:8080/index.html 就行了。
<!-- Tomcat Manager Context -->
<Context path="/manager" docBase="manager" debug="0"privileged="true"/>
path="" 为部署后运行的url路径,docBase为你的war的文件名。 第一次运行的时候,tomcat会自动解压war,生成path指定名称的网站。
这里docBase中的"manager"就表示war文件名称为“manager.war"
修改server.xml在tomcat下部署多个WEB工程
第一步:
server.xml 修改如下:
<Host name="localhost" appBase="WebRoot"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="F:\myeclipse8work\teset\WebRoot"
workDir="F:\java\tomcat-work" reloadable="true">
</Context>
</Host>
<Host name="zhangda" appBase="WebRoot"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="F:\myeclipse8work\hibernate\WebRoot"
workDir="F:\java\tomcat-work2" reloadable="true">
</Context>
</Host>
wordDir 是设置不同项目的缓存目录,不同的项目设置不同缓存目录。
第二步:
在C:\Windows\System32\drivers\etc下找到hosts文件,修改如下内容:
127.0.0.1 localhost
127.0.0.1 zhangda
去掉前面的“#”。
第三步:
在浏览器输入:http://localhost:8080 可以访问 F:\myeclipse8work\teset\WebRoot 内容。
在浏览器输入:http://zhangda:8080 可以访问 F:\myeclipse8work\hibernate\WebRoot 内容。
tomcat server.xml配置
一、修改端口
Tomcat默认的WEB端口为8080,我一般喜欢把它改成80,当然这是完全没有必要的
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
注意是修改HTTP协议的,也就是protocol="HTTP/1.1"的,不是其他的。
二、增加虚拟目录
1、最简单的方式:直接把JavaEE网站放在$CATALINA_HOME/webapps目录下了,然后通过http://localhost/WebName,WebName为网站的目录名;
2、自定义:把网站放在其它的目录下,比如放在/var/www/webapp目录下,那么就要修改server.xml了。
在</Host>前增加以下内容即可:
<Context path="/SpringMVC" docBase="/var/www/webapp/SpringMVC" workDir="/var/www/webtmp/SpringMVC" debug="5" reloadable="false" crossContext="true" />
则可以通过http://localhost/SpringMVC访问了,也就是在主机名为localhost中增加了一个名为SpringMVC的虚拟目录了,当然,这里的名字完全依个人而定的。
三、增加虚拟主机
其实这才是本文要说的重点,也就是本文开头说的那种案例。我们每开发一个网站,都是通过http://localhost/WebName的形式访问,是不是很麻烦?
1、修改hosts文件,增加主机名
(1)Linux系统的hosts文件为/etc/hosts
(2)Windows系统的hosts文件为C:\WINDOWS\system32\drivers\etc\hosts
比如你想增加www.local.com主机,则在此文件中增加一行:127.0.0.1 www.local.com,也就是说当你访问www.local.com时,其实是访问127.0.0.1;
我比较喜欢简短的域名,所以我增加的是:127.0.0.1 SpringMVC
2、修改配置文件
在</Host>后再增加一个Host结点:
<Host name="SpringMVC" appBase="/var/www/webapp/SpringMVC" unpackWARs="true" autoDeploy="false" xmlValidation="false" xmlNamespaceAware="false" />
即增加了一个名为SpringMVC的虚拟主机,当然也可以是name="www.local.com",这个根据具体情况定。
这样,访问的IP就是:http://SpringMVC了。
3、目录设置
主机SpringMVC的WEB文件全放在/var/www/webapp/SpringMVC目录下,在该目录下增加ROOT目录,放入你的JavaEE网站工程,这样,你就可以通过http://SpringMVC访问你的网站了,后面少了/SpringMVC这个字串,在IP上与运行环境保持了一致。
四、其它问题
通过http://SpringMVC访问的是SpringMVC网站;
通过http://localhost访问的是Tomcat自带的网站;
我们在hosts文件中已经知道,SpringMVC和localhost都对应的IP是:127.0.0.1
那么,通过http://127.0.0.1访问的是那个网站呢?
在Host的父节点是:<Engine name="Catalina" defaultHost="SpringMVC">
从上可以看出,defaultHost="SpringMVC"决定了127.0.0.1访问哪个网站,我的设置是访问SpringMVC
tomcat war包部署的更多相关文章
- SpringBoot系列: 极简Demo程序和Tomcat war包部署
=================================SpringBoot 标准项目创建步骤================================= 使用 Spring IDE( ...
- gitlab+jenkins+tomcat war包部署(此文有新版本)
对本文进行格式整理,url: https://www.cnblogs.com/huandada/p/9969234.html 整个项目的框架为: 1.gitlab的安装(Centos7) 新建/etc ...
- SpringBoot之打成war包部署到Tomcat
正常情况下SpringBoot项目是以jar包的形式,正常情况下SpringBoot项目是以jar包的形式,并且SpringBoot是内嵌Tomcat服务器,所以每次重新启动都是用的新的Tomcat服 ...
- springboot 学习之路 5(打成war包部署tomcat)
目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...
- Windows下war包部署到Linux下Tomcat出现的问题
最近,将Windows下开发的war包部署到Linux下的Tomcat时报了一个错误:tomcat error in opening zip file.按理说,如果正常,当把war包复制到webapp ...
- 将Web项目War包部署到Tomcat服务器
1. 配置Java运行环境 1.1 下载并安装JDK 从官网上下载最新的JDK:http://java.sun.com/javase/downloads/index.jsp ,下载后安装,选择想把JD ...
- eclipse项目转移至IDEA与IDEA tomcat报错(idea自带tomcat版本太高)与war包部署到win服务器与idea提交git的总结
eclipse导出项目到idea时,不要导出target: idea打开eclipse项目后,出现junit找不到的问题,原因是jar包缺失,而maven配置的低版本的junit也显示找不到,解决办法 ...
- 将web项目打成war包部署在tomcat步骤
将web项目打成war包部署在tomcat步骤 1.将自己的项目打成war包. 2.将打包好的war复制到${tomcat.home}/webapps项目下. 3.在${tomcat.hom}/con ...
- Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败解决方案
即上篇通过将web项目打成war包部署到Tomcat服务器,解决mysql问题后,又出现了新问题,真是一波三折,所以将解决过程分享给大家,希望能帮助到小伙伴们~ 将打好的war包拷贝到Tomcat的w ...
随机推荐
- 11号了,还有三天上线-改bug
+(NSDictionary *)replacedKeyFromPropertyName { return @{ @"doctorId": @"id" }; ...
- Delphi 如何操作外部程序的控件(如按钮,文本框,单选按钮等)
看你要做什么,比较现在网络很流行的QQ.MSN这些软件都屏蔽了,你可能还可以访问一些小软件的这些控制,思路及方案如下(API函数自己去百度查一下)1.得到你要这个窗口的句柄 使用FindWindow2 ...
- 五 mybatis的SqlMapConfig.xml详解
SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE conf ...
- strcpy 和 strnpy 区别
与strncpy的区别 第一种情况: 1 2 3 4 char* p="how are you ?"; char name[20]="ABCDEF ...
- Jetbrains phpstorm pycharm 免费授权注册码
通过授权服务器授权 jetbrains是一家专门做IDE的软件公司,软件也非常好用,但是授权特别贵,下面就说说免费的方式,就是使用授权服务器,地址:http://idea.qinxi1992.cn 自 ...
- python 之 推导式
推导式 : 英文 comprehension 支持推导式的有列表list 字典dict 集合set 注意元组没有 推导式,如果你那样去写,他会变成一个generator生 ...
- 【Android开发学习笔记】【高级】【随笔】插件化——Activity生命周期
前言 如同第一章我们说的,宿主程序通过 dexclassloader 将插件的类加载进来,然后通过反射去调用它的方法,这样Activity就被当成了一个普通的类来执行了,因此系统不再接管它的生命周期, ...
- 设计模式:策略模式(Strategy)
定 义:它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化, 不会影响到使用算法的客户. 示例:商场收银系统,实现正常收费.满300返100.打8折.......等不同收费 ...
- Wordpress制作sidebar.php
调用 在主页以下方法可以调用模板中sidebar.php的内容 <?php get_sidebar(); ?> 判断是否自定义sidebar侧边栏: <?php if ( !func ...
- Nodejs电影建站开发实例(上)
网站环境:使用express框架.bootstrap样式.jade模板.mongoose数据库 npm insatll express -g npm insatll jada -g npm insat ...