【发布时间】:2017-05-26 15:29:10
【问题描述】:
我在 spring boot/tomcat 实例中使用 jsp 时遇到问题。 基本上,我在模块 A (A/src/main/resources/META-INF/resources/jsp) 中有所有 jsp 文件,并且该模块作为 jar 依赖项包含在模块 B(主模块,war 包装)中。问题是,当应用程序在调试模式下运行时(在 Eclipse 或 IntelliJ Idea 中),位于模块 A 中的所有 jsp 文件都不会自动重新加载(在呈现的网页上看不到文件的更改),只能重新启动的 tomcat 实际上会重新加载文件并显示更改。模块 B 中被覆盖的 jsp 文件正在自己重新加载,只是模块 A 中的 jsp 文件有问题(可能是因为 META-INF/resources 文件夹)。
Module A结构(依赖,打包为jar): src/main/resources/META-INF/resources/jsp/*.jsp
Module B结构(主模块,打包成war,这里的jsp覆盖Module A中的): src/main/webapp/jsp/*.jsp
我已经寻找解决方案,但最接近答案的是这个(使用 JRebel): https://zeroturnaround.com/forums/topic/jsps-in-servlet-3-0-jars-are-not-reloading/
另外,这是我如何设置 jsp 的示例:https://github.com/ghillert/spring-boot-jsp-demo
【问题讨论】:
-
你试过清理tomcat工作文件夹了吗?理论上您可以强制 IDE 执行保存任务,例如 on
.jspfile save clean/delete work directory。 -
是的,还是没有运气。
-
看看tomcat.apache.org/tomcat-8.0-doc/config/resources.html 好像可以完全禁用资源缓存。
-
您是在使用 Spring Boot 嵌入式 Tomcat 还是使用独立 Tomcat 时遇到问题?
-
@davidxxx 问题出在他们两个身上。
标签: java spring jsp tomcat spring-boot