Jfinal 项目 部署 Tomcat 浏览器访问图片访问不到问题

Jfinal项目在编译器(Eclipse)中运行访问可以看到图片等等,但是打成war包放到tomcat的webapps包下后,再次去用浏览器访问出现了图片丢失问题,有遇到过的吗?  windows环境下。

评论区

杜福忠

2020-06-10 15:24

https://my.oschina.net/jfinal/blog/353062

自律的心呀!

2020-06-10 15:29

@杜福忠 谢谢,我也是看了波总这篇文章的,但是他这是linux中的,我有点地方不懂

自律的心呀!

2020-06-10 15:30

就是我定义一个文件夹,里面放要运行的项目war包对吧,然后进入config目录下的service.xml文件添加波总的那段代码并修改路径就可以了吗?

杜福忠

2020-06-10 15:39

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

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

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

杜福忠

2020-06-10 15:42

最好不要放war,没有必要,浪费Tomcat解压war的时间,自己提前解压比较好,还能看下打包的内容结构对不对

自律的心呀!

2020-06-10 15:53

@杜福忠 E:\my_project\FS\META-INF 这是我项目的目录结构

自律的心呀!

2020-06-10 15:55

路径这样写

自律的心呀!

2020-06-10 15:56

Context path="" docBase="E:\my_project\FS" reloadable="false" />

自律的心呀!

2020-06-10 15:56

路径是这样的

自律的心呀!

2020-06-10 15:56

对吗

JFinal

2020-06-10 16:02

@自律的心呀! 我在博客中分享的 tomcat 部署方式在我切换到 jfinal undertow 之前,从 2008 年一直用到 2018 年,足足十年

完全按照博客仔细排查即可,并没有什么秘密和可以多说的地方

自律的心呀!

2020-06-10 16:04

谢谢 老杜跟波总,已经可以了,涨知识了

JFinal

2020-06-10 16:11

@自律的心呀!

此外,建议切到 jfinal undertow,比 tomcat 爽多了,也快多了

部署无需下载、安装、配置 tomcat,让开发、打包、部署完全一体化

也就是说,如果你用上 jfinal undertow ,你现在提的这个问题根本就不存在:
https://www.oschina.net/p/jfinal-undertow

自律的心呀!

2020-06-10 16:30

@JFinal 好的,我自己私下去学习,但是公司这边还是以tomcat进行运行部署的

自律的心呀!

2020-06-10 16:30

我慢慢对JFinal这个体系感兴趣了,希望有问题可以一起交流交流

自律的心呀!

2020-06-10 16:43

@JFinal 就是我还有一个问题,如果我要部署2个项目呢,那那个service.xml怎么配置呢


我再配置一个 Context 然后就报错了

JFinal

2020-06-10 17:00

@自律的心呀! 博客中有说明,要添加 Host 标签,多个 Context 就要有多个 Host 与之对应

自律的心呀!

2020-06-10 17:29

@JFinal 好的好的

山东小木

2020-06-10 23:03

推荐使用Undertow服务器 易用性 性能 部署便利性都胜过tomcat
【视频】基于JFinal-undertow的项目打包与部署(linux centos7)