由于公司用maven做为项目控制,服务器为tomcat,如果启动项目需要十分钟左右。一般部署方法把整个程序打成war包,让tomcat自己解包。
但现在,假如我只是改了个jsp文件,我希望直接替换tomcat的webapps下jsp达到省时间的操作,删除catlina,替换jsp,浏览器缓存清除,可是还没有达到jsp文件重新部署。后来发现,tomcat没有对替换后的jsp进行编译,请问高手如此怎么解决?
但现在,假如我只是改了个jsp文件,我希望直接替换tomcat的webapps下jsp达到省时间的操作,删除catlina,替换jsp,浏览器缓存清除,可是还没有达到jsp文件重新部署。后来发现,tomcat没有对替换后的jsp进行编译,请问高手如此怎么解决?
<Host name= "localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
以前项目上线的时候使用weblogic,修改个别文件的时候只需增量部署即可。
现在很好奇,
1.为什么tomcat自动deploy的时候可以把jsp文件编译后不需重新启动服务器即可使用最新的jsp文件
2.tomcat自动deploy的时候只在catlina下面留了个缓存,temp文件是访问后的副本(个人理解),那么真正使用jsp的时候调的应该是catlina下编译过的jsp吧?
直接将tomcat下temp目录中最新版本project(看时间)对应的jsp文件覆盖即可,其他操作tomcat自己完成
1、Weblogic也可以,但是要非生产模式,而且需要配置weblogic.xml文件;本质上就是访问JSP前检查最后更新时间而已;2、是的。编译后的一般默认放在work目录。
其实我们也都是用自动脚本来处理,打包仍然会打包为war,这个版本发布管理的规范性要求;但是FTP上传到服务器,然后解包,然后调用Weblogic的Admin服务进行部署;最后重启Weblogic,这个重启很重要。
谢谢指教 结贴哈
看了该贴之后发现问题的解决办法:tomcat—》work文件夹--》Catalina--》localhost文件夹下的对应项目名,直接删除,重新启动tomcat,然后会发现重新编译了,可以更新了。