首先熟悉一下tomcat的发布配置相关:
具体的发布配置步骤:
我的项目部署:
配置文件:tomcat../conf/server.xml
<Host ..
<Context path="" reloadable="false" docBase="E:\www\gmb"/>
</Host>
原本是没有问题的,不过 @jfinal,詹总推荐把tomcat配置的path留空 " ",那么问题来了。很多时候我们前端的action请求
是以项目名称为前缀的,这样就等于少了一层(me.add(new ContextPathHandler("ctx")) 取到的是 " ")。
有人就会说了,path那就不留空 ,根据项目名称来,如 "/gmb",可是问题又来了,前端访问的时候,就变成了:http://localhost:8080/gmb/gmb 才能访问了,不要忘了tomcat下面配置的 docBase 的物理地址。
没错,就是这里的问题,折腾的我大半夜的现在才发这个心得。解决办法呢,就是 在 afterJFinalStart 中进行配置 这个项目前缀到 上下文环境中,JFinal.me().getServletContext().setAttribute("ctx", "/gmb");
当然,没使用setAttribute("ctx", "/gmb") 之前,首页中有一处获取到了 ctx的项目前缀,其他都没有获取到,现在还在纳闷。这个问题也有点奇怪
时间: 2024-10-08 09:48:03