JFinal 部署在 Tomcat 下推荐方法(转载)
经常有人在群里问 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 标记,在其中添加如下子标记:
<Context path="" docBase="/var/www/my_project" reloadable="false" />
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
JFinal 部署在 Tomcat 下推荐方法(转载)的更多相关文章
- JFinal 部署在 Tomcat 下推荐方法(转)
首先明确一下 JFinal 项目是标准的 java web 项目,其部署方式与普通 java web 项目没有任何差别.Java Web 项目在 Tomcat 下部署有一些不必要的坑需要避免,所以撰写 ...
- ****JFinal 部署在 Tomcat 下推荐方法
首先明确一下 JFinal 项目是标准的 java web 项目,其部署方式与普通 java web 项目没有任何差别.Java Web 项目在 Tomcat 下部署有一些不必要的坑需要避免 经常有人 ...
- Maven Web项目部署到Tomcat下问题
但是也遇到了很多问题,下面记录一下Web项目部署到Tomcat下的问题 1.普通的WEB项目,就是虽然是用maven搭建的,但是没有使用profiles.xml文件来配置参数.这样的项目可以通过以下的 ...
- 将应用部署到Tomcat根目录的方法 去掉url里的项目名
在"conf/Catalina/localhost"目录下增加新的文件"ROOT.xml"(注意大小写哦),文件内容如下: <?xml version=& ...
- Spring Boot Jar包转War包 部署到Tomcat下
原文:https://my.oschina.net/sdlvzg/blog/1562998 我们都知道springBoot中已经内置了tomcat,是不需要我们额外的配置tomcat服务器的,但是有时 ...
- 2016.6.21 将Eclipse中项目部署到tomcat下
新建的web项目,各种都配置好,选择run on server之后,发现运行失败,并不能访问需要的网址.而脱离eclipse,将生成的war文件直接放到tomcat的webapp下时,可以正常访问.所 ...
- JFinal 项目 在tomcat下部署
原文:http://my.oschina.net/jfinal/blog/353062 首先明确一下 JFinal 项目是标准的 java web 项目,其部署方式与普通 java web 项目没有任 ...
- 将应用部署到Tomcat根目录的方法
将应用部署到Tomcat根目录的目的是可以通过“http://[ip]:[port]”直接访问应用,而不是使用“http://[ip]:[port]/[appName]”上下文路径进行访问. 方法 ...
- SpringBoot打war包并部署到tomcat下运行
一.修改pom.xml. 1.packaging改为war 2.build节点添加<finalName>你的项目名</finalName> 二.修改项目启动类,继承Spring ...
随机推荐
- Spring MVC入门(一)—— SpringMVC的执行流程与常用注解
一.什么是SpringMVC SpringMVC就是类似于Struts2的mvc框架,属于SpringFrameWork的后续产品.在模型层中与视图层的交互部分. springMVC执行流程: 二.常 ...
- jQuery源码学习笔记二
//添加实例属性和方法 jQuery.fn = jQuery.prototype = { // 版本,使用方式:$().jquery弹出当前引入的jquery的版本 jquery: core_vers ...
- js获取url中参数名也参数值
要撮利用js获取url中参数名也参数值这个不多见了,但我今天需要这样操作,下面我来给大家介绍一下具体的实例方法. 在已知参数名的情况下,获取参数值,使用正则表达式能很容易做到. js的实现方法如下 ...
- Android内核漏洞利用技术实战:环境搭建&栈溢出实战
前言 Android的内核采用的是 Linux 内核,所以在Android内核中进行漏洞利用其实和在 一般的 x86平台下的 linux 内核中进行利用差不多.主要区别在于 Android 下使用的是 ...
- Android 运行时权限处理(from jianshu)
https://www.jianshu.com/p/e1ab1a179fbb 翻译的国外一篇文章. android M 的名字官方刚发布不久,最终正式版即将来临! android在不断发展,最近的更新 ...
- RecyclerView中notifyDataSetChanged刷新总结
除了adapter.notifyDataSetChanged()这个方法之外,新的Adapter还提供了其他的方法,如下: public final void notifyDataSetChanged ...
- oracle 用户创建、修改、删除
创建用户: create user test identified by test; 修改密码: 1.alter user test identified by mima; 2.passw[ord] ...
- clean-css
What is clean-css? Clean-css is a fast and efficient Node.js library for minifying CSS files. Accord ...
- 对《SQL Server中tempdb的management》的一些更正和补充
对<SQL Server中tempdb的management>的一些更正和补充 前几天看了这篇文章:SQL Server中tempdb的management 发现里面有些内容不是很准确 文 ...
- swift版的元组
swift版的元组 说明 元组的内容并不多,使用的话跟普通变量类似,以下是测试源码: // // ViewController.swift // Tuples // // Created by You ...