JFinal 部署在 Tomcat 下推荐方法

Stella981
• 阅读 419

   经常有人在群里问 tomcat 下项目部署的问题,现写个简单的博文,希望能帮助到有需要的人。

   首先明确一下 JFinal 项目是标准的 java web 项目,其部署方式与普通 java web 项目没有任何差别。Java Web 项目在 Tomcat 下部署有一些不必要的坑需要避免,所以撰写此文方便大家绕过一些坑,以下部署以 linux 为例,windows 与此类似:

1:创建一个目录:   /var/www

2:为将要部署的项目创建一个目录, /var/www/my_project

3:将项目打成 war 包, 然后解压到 /var/www/my_project

4:最终的目录结构为:/var/www/my_project/WEB-INF,也即 WEB-INF 在项目名称目录之下

5:修改  TOMCAT_HOME/conf/ server.xml 文件找到 Host 标记,在其中添加如下子标记: 

   

6:注意 Host 标记中的 appBase 属性不要去修改,让其为默认值 "webapps"

7:启动 tomcat 打完收工

    第一个关键点:以上配置中项目是部署在了 TOMCAT_HOME/webapps 目录之外的,这样做是为了避免 tomcat 加载项目两次的坑,因为配置文件中如果配置了该项目会被加载一次,而项目在 webapps 下面又会被自动重复加载一次,这个坑会引发一些莫名奇妙的问题,例如:老版本的tomcat中,多人同时登录后session产生混乱,再例如:有些项目有定时任务,如果重复加载项目,那么定时任务也会被执行多次。所以记住第一点,永远不要将项目放在 TOMCAT_HOME/webapps 目录下面。

   第二个关键点:以上配置中的 Context 标记的 path 属性一定要设置为 "" 而不是 "/",否则也会跳入一个坑。 docBase 属性后面放项目名称的绝对地址, windows 下则是类似于这样的值: d:/www/my_project。

   简单说 tomcat 下配置分两步,一是在 webapps 目外之外建目录放项目,二是找 Host 标记放入 Context 子标记。

  这里还有 tomcat 下 302 重定向问题的坑,可以提前预知一下:http://www.oschina.net/question/941098_93842?fromerr=l2fjHuvx

点赞
收藏
评论区
推荐文章
菜鸟阿都 菜鸟阿都
1年前
springboot+vue项目linux环境部署
项目部署是一个程序员必备的技能,当项目开发过程中,需要将项目部署在开发服务器上,进行自测,或协助运维,测试进行环境的搭建配置,学会了项目部署,你就是团队中最亮的那个仔。项目简介后端:springboot项目【打包为jar包】前端:vue项目【通过cli3搭建】目标服务器:liunx操作系统使用工具xshell:通过命令操作服务器sftp:上传安装包到服务器部
菜鸟阿都 菜鸟阿都
1年前
tomcat输出控制台信息乱码
使用idea开发java项目时,将其打包成war包,并使用tomcat启动,但控制台输出的中文信息乱码,与大家分享一下解决方案控制台乱码信息如下解决方案:修改文件位置:apachetomcat9.0.44\conf\logging.properties将其中的5处UTF8编码修改为GBK重启项目,idea控制台输出的tomcat部署信息乱码问题得到了解决
Stella981 Stella981
1年前
Eclipse下maven项目Tomcat部署调试
我一直喜欢使用NetBeans编写Maven的项目,但是单位同事很多还是更愿意使用Eclipse,我总觉得Eclipse下Maven没NetBeans好用,但是人家喜欢呀,只好帮忙做这方面的部署,不然就没法推广Maven了。还好现在最新的Eclipse4.3已经内置了Maven插件,这让我的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问
Easter79 Easter79
1年前
tomcat不能运行或共存多个项目
我在Tomcat下部署了两个项目,但是一个可以运行,另一个不可以,第一感觉是内存问题,给tomcat多分配了内存.但是没有作用.原因是少了webAppRootKey这个参数,需要在各自的web.xml下添加<contextparam       <paramnamewebAppRootKey</paramname 
Wesley13 Wesley13
1年前
javaweb项目部署
首先谢谢@JFinal(http://my.oschina.net/jfinal)的自由,让我搞明白,原来项目可以这样部署。以前的部署方式:tomcat目录confserver.xml修改<Host节点,添加如下内容:<Contextpath"/jfinal"docBase"D:\code\jfin
Stella981 Stella981
1年前
Eclipse中将Java项目转换成Web项目的方法
前言:  用Eclipse开发项目的时候,把一个Web项目导入到Eclipse里会变成了一个java工程,将无法在Tomcat中进行部署运行。  方法:  1.找到.project文件,找到里面的<natures标签,查看是否有下面的代码,没有则复制进去。  Xml代码1.<natureorg.eclipse.ws
Easter79 Easter79
1年前
springboot的跨域
https://www.cnblogs.com/520playboy/p/7306008.html1、对于前后端分离的项目来说,如果前端项目与后端项目部署在两个不同的域下,那么势必会引起跨域问题的出现。针对跨域问题,我们可能第一个想到的解决方案就是jsonp,并且以前处理跨域问题我基本也是这么处理。但是jsonp方式也同样有不足,不管是对
Stella981 Stella981
1年前
Jenkins部署Web项目到远程tomcat
1.系统管理管理插件可选插件搜索“DeploytocontainerPlugin(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwiki.jenkinsci.org%2Fdisplay%2FJENKINS%2FDeploy%2BPlugin)”,勾选插件直接安装,等着
helloworld_34035044 helloworld_34035044
3个月前
皕杰报表部署问题小结
在部署到Linux服务器上后,更换配置文件经常会发生一些问题,这个一般都是由各个方面造成的,记录下最近遇到的一些问题。首先看tomcat启动起来没有,如果tomcat都没启动,那就是哪里出错了,比如:没有权限导致启动命令不成功server.
helloworld_34035044 helloworld_34035044
5个月前
皕杰报表在传参过程中乱码
当web项目的编码格式为UTF8的,在tomcat上集成部署,传参时中文乱码时,需要修改下列编码格式。​​解决方案:1、更改D:/Tomcat/conf/server.xml,指定浏览器的编码格式为“UTF8”:2、更改web项目WEBINF\resources下的Congfig.xml里的            UTF83、更改jsp中编码格式为utf8​