jfinal部署在tomcat下问题

前几天公司要求做个演示,用jfinal简单搭了个小东东,但是部署到tomcat下的时候出现了诸多问题。

  1. 在Myeclipse中引入的jfinal项目不能导出war包

            这个问题不是jfinal的问题,是myeclipse和eclipse之间项目互转的问题,可以参考这个地址http://blog.sina.com.cn/s/blog_6ba3371b01014ygh.html

2.项目的war包直接放到tomcat的webapps下会有项目被加载两次的问题

    这个可以参考https://my.oschina.net/jfinal/blog/353062 , 当时我也是按照这个方法做的,可是就是没有作用,今天自己在家又试了一次,结果正常了,明天还要在公司的环境上试一试

3.静态文件的路径问题

    开发环境中,用的是jetty-server,直接运行就行,路径全用的相对路径,当部署到tomcat时,相对路径都找不到...悲了个催了。

评论区

JFinal

2016-10-30 17:46

在详细了解了那篇博文之后,我再给出如下的认知,补充那篇博文里面所说的:
1:假定你的资源路径使用的是相对路径,也就是说没有以 "/" 打头,或者是没有以 "http://" 打头的路径

2:根据 java web 规范,资源的最终路径会跟着地址栏当前路径去变化,例如,你的某个资源是 <img src="abc.jpg">

3:假定你当前地址栏里面是 "localhost/xxx" 那么资源的最终路径会变成: "locahost/xxx/abc.jpg",而当地址栏里面的路径是 "localhost/yyy" 的时候,你的资源最终路径会立即变成 "/localhost/yyy/abc.jpg"

4:这个问题与 jfinal 毫无关系,无论你用的什么 java 开发框架都是这个行为,是需要自己先有个认知

解决办法无非就是两个:
1:资源使用绝对路径,以 "/" 打头,或者以 "http://" 打头,并且将 contextpath 设置为 "" 值

2:否则就需要在资源路径前面使用一个变量,例如: <img src="${CONTEXT_PATH}abc.jpg"> 然后将这个 CONTEXT_PATH 始终赋上正确的值即可

很显然方法一最省事,不折腾

山东小木

2016-11-04 01:25

使用jsp 设置标签 一切没有路径问题 相对路径就行

happyboy

2016-11-07 10:07

准确说这几个问题跟jfinal都没有关系,都是编程习惯导致的代码不健壮性。

Always风月

2017-09-28 20:08

@JFinal java.lang.IllegalArgumentException: Document base C:\apache-tomcat-6.0.48\webapps\var\www\clqp does not exist or is not a readable directory 我在webapps文件外面建的var文件夹 但是tomcat启动还是会报这个错误

JFinal

2017-09-28 23:04

@Always风月 tomcat 下部署一定要看看这篇博文,可以跳过很多 tomcat 的坑:https://my.oschina.net/jfinal/blog/353062

545923664

2017-10-23 18:50

牛逼

热门分享

扫码入社