JFinal 部署在 Tomcat 下推荐方法

Stella981
• 阅读 594

   经常有人在群里问 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

点赞
收藏
评论区
推荐文章
Easter79 Easter79
2年前
tomcat不能运行或共存多个项目
我在Tomcat下部署了两个项目,但是一个可以运行,另一个不可以,第一感觉是内存问题,给tomcat多分配了内存.但是没有作用.原因是少了webAppRootKey这个参数,需要在各自的web.xml下添加<contextparam       <paramnamewebAppRootKey</paramname 
Wesley13 Wesley13
2年前
javaweb项目部署
首先谢谢@JFinal(http://my.oschina.net/jfinal)的自由,让我搞明白,原来项目可以这样部署。以前的部署方式:tomcat目录confserver.xml修改<Host节点,添加如下内容:<Contextpath"/jfinal"docBase"D:\code\jfin
Easter79 Easter79
2年前
springboot打成的jar包如何在Linux上持久运行
一、首先说说在没有springboot的时候,项目是如何部署的?1.动态web项目动态web项目部署很方便,基本上上传文件到服务器的tomcat里面的webapps文件夹下即可完成部署。当然了,这种做法的弊端是,如果是通过winscp来传输对于网速方面要求严格,不然的话
皕杰报表在传参过程中乱码
当web项目的编码格式为UTF8的,在tomcat上集成部署,传参时中文乱码时,需要修改下列编码格式。​​解决方案:1、更改D:/Tomcat/conf/server.xml,指定浏览器的编码格式为“UTF8”:2、更改web项目WEBINF\resources下的Congfig.xml里的            UTF83、更改jsp中编码格式为utf8​
京东云开发者 京东云开发者
11个月前
玩转服务器之Java Web篇:手把手教你搭建Java Web环境
JavaWeb项目,简单来说就是我们在浏览器上可以看到的内容。就简单的Web来说,服务器上也同样需要有计算机上所需要的运行环境,如:java,tomcat,mysql。JavaWeb环境可以用来开发和部署各种Web应用程序,例如网站、Web服务、Web后台管理系统等。特点是跨平台、可靠性高、安全性强、开发效率高等。本篇文章会给你比较详细的教程,从最基本的开始,循序渐进的深入。
Stella981 Stella981
2年前
Eclipse下maven项目Tomcat部署调试
我一直喜欢使用NetBeans编写Maven的项目,但是单位同事很多还是更愿意使用Eclipse,我总觉得Eclipse下Maven没NetBeans好用,但是人家喜欢呀,只好帮忙做这方面的部署,不然就没法推广Maven了。还好现在最新的Eclipse4.3已经内置了Maven插件,这让我的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问
Stella981 Stella981
2年前
IntelliJ IDEA使用Application Server开发普通Java Web项目
1.新建一个JavaWeb项目1.开启ApplicationServer的Plugin,这里以Tomcat为例    !(http://static.oschina.net/uploads/space/2014/1026/204934_MWqD_946569.jpg)2.在Applicatio
Easter79 Easter79
2年前
SpringBoot打成war包,部署到Tomcat服务器
前言 SpringBoot默认达成jar包,默认使用内置的Tomcat。但考虑到项目需要打成war包部署到外部的Tomcat服务器中。把SpringBoot项目按照平常的web项目一样发布到tomcat容器下。1、修改pom.xml文件将默认的jar(默认创建项目的时候没有packaging)方式改为war。
Stella981 Stella981
2年前
Eclipse中将Java项目转换成Web项目的方法
前言:  用Eclipse开发项目的时候,把一个Web项目导入到Eclipse里会变成了一个java工程,将无法在Tomcat中进行部署运行。  方法:  1.找到.project文件,找到里面的<natures标签,查看是否有下面的代码,没有则复制进去。  Xml代码1.<natureorg.eclipse.ws
Stella981 Stella981
2年前
SpringBoot打成war包,部署到Tomcat服务器
前言 SpringBoot默认达成jar包,默认使用内置的Tomcat。但考虑到项目需要打成war包部署到外部的Tomcat服务器中。把SpringBoot项目按照平常的web项目一样发布到tomcat容器下。1、修改pom.xml文件将默认的jar(默认创建项目的时候没有packaging)方式改为war。