Reloading JSTL Tag files in Tomcat development mode
The application I just inherited defines .tag files - ie JSTL tags written in JSP and other JSTL tags. Is it possible for Tomcat to pick up on changes to .tag files and recompile/reload them without a restart, in the same manner of "development" mode for JSPs?
Edit I should have noted that the开发者_StackOverflow社区 context is marked as "reloadable" in Tomcat, and I'm successfully hot-deploying class files and jsps. It's just not picking up on .tag files.
"development" mode for JSPs applies for the tag files too ... unless the tag files are being packaged in a jar file (e.g. in /META-INF/tags/
of a jar file in /WEB-INF/lib
).
If the tag files are being deployed like the JSPs (e.g. in /WEB-INF/tags/
) they will be checked for modification and reloaded on each access if "development" mode is true
. You shouldn't have to set it explicitly as it's true by default in tomcat 5.5/6.
If you check $CATALINA_BASE/conf/web.xml
and "development" isn't explicitly set to false
but you're still getting issues with reload of .tag files (assuming these aren't jar-packaged) you could try turning off tag pools (for the jasper, JspServlet
):
<init-param>
<param-name>enablePooling</param-name>
<param-value>false</param-value>
</init-param>
... but this really shouldn't be necessary.
Libraries/files in classpath won't be hotdeployed/hotloaded in Tomcat. As far as I know, Glassfish v3 is the only who can do that. Tomcat can only hotdeploy changes in JSP files and Java source files. However, since Tomcat is a pretty quick (re)starter (done in less than 3 seconds in contrary to around 30 seconds for Glassfish), manually restarting shouldn't be a major issue, is it? A hotdeploy itself would already take about the same time.
精彩评论