前言
本篇文章将讲述将我们已经有的项目部署独立部署到tomcat中(例:不打开IDEA来运行项目),然后在tomcat运行状态下通过ip地址端口号去访问项目。4种情况
一、准备工作:获取到war包
这里讲述IDEA获取方式:
1.打开IDEA后选择到需要获取war包的项目-左上角的file-Project Structure
2然后点击Artifacts-Web Application:Archive-for自己的工程名:war exploded
【选看:2.1如果想要获得IDEA的输出文件,就选择第二个Web Appication Exploded即可,后续也修改指定的目录位置,确定后,build即可。】
3.然后勾选include in project build,然后选择需要输出到的目录,最后点击右下角Apply 然后ok 即可
4.然后点击IDEA上方的Build-Build Artifacts, 然后选择工程名:war-Build (也可以直接运行一遍程序,目的就是让其打包成war包放到我们设置好的路径下)
5.到设置好的目录去找到我们的war包。
二、独立部署项目到tomcat
可以分为四种:1.单个页面放到Root2.整体项目war包放入webapps3.修改server.xml 4.不修改server.xml
第一种:单个页面放到Root
例:准备一个HelloWorld.html文件
1. 直接将HelloWorld.html文件放到tomcat的里的Root目录下:
例:apache-tomcat-9.0.64\webapps\ROOT
2.tomcat运行情况下(bin目录下startup.bat)通过http://127.0.0.1:8080/HelloWorld.html 即可访问该页面
第二种:war包放入webapps
1. 关闭tomcat,然后将我们获得的war包放到tomcat的webapps目录下,然后启动tomcat,系统会自动解压并编译java代码。
启动tomcat前:我们只放了一个war包,并没有对应的目录文件
启动tomcat后:此时多了一个和war包相同名的一个目录文件
2..tomcat运行情况下(bin目录下startup.bat)通过http://127.0.0.1:8080/天猫J2ee_war 即可访问该页面。(在端口号后面加上我们得到的项目名)
访问成功
第三种:修改server.xml文件
通过修改tomcat的conf目录下的server.xml文件
1.通过记事本来打开文件,找到如下位置(ctrl + f 查找)
2.输入以下语句,这里我的docBase指向的是IDEA的输出文件,(你可以指向webapps下生成的项目文件,也可以向我一样指向IDEA的输出文件)
<Context path="/tianmao" docBase="D:\学习\Java\天猫J2ee\out\artifacts\J2ee_war_exploded" debug="0" reloadable="false" />
解释:
Path表示访问项目的主目录(自己定义)
DocBase表示真实项目所在的地址(绝对位置或者相对webapps目录的位置,可以指向webapps目录里通过方式二自动解压出来的文件夹,也可以指向idea输出的文件夹)
reloadable 表示自动加载类包。 true或false
这个属性在开发阶段通常都设为true,方便开发;在发布阶段应该设置为false,提高应用程序的访问速度 ;
docBase指向的项目应该是:放在webapps下面的war包解压编译后的文件夹。或者由idea输出的文件夹(方法同准备工作一样,选择不同而已,获取idea输出的文件夹可看上方准备工作的2.1)。
3.保存文件后,运行tomcat即可,通过http://127.0.0.1:8080/tianmao 来访问项目(注意运行tomcat哦~)
可以对比一下方式二,一个是通过war包自动解压出来的项目名(天猫J2ee_war)来访问,一个是通过我们设置的项目名(tianmao)来访问。
第四种:不修改server.xml文件
不修改server.xml文件,直接到tomcat的conf\Catalina\localhost去增加一个xml配置文件,内容与第三种方式所写一样。
注意:该xml文件的文件名必须与path里设置的一致,也注意将第三种方式里设置的该语句删除,才能查看到该方式的作用。
重新运行tomcat ,输入http://127.0.0.1:8080/tianmao 来访问项目
第四种方式比第三种方式的优点是便于删除。不需要去动server.xml文件
总结
这里讲述了独立部署tomcat项目的四种方式,这样我们不需要打开IDEA就能访问我们的项目了。
对于第二种方式其缺点就是当项目需要修改时,我们又需要重新将war包放到webapps目录下,
当然,如果我们将第三/四种方式的docBase指向的是我们IDEA输出路径export文件就能解决。
相关指引: