为什么Websphere v8.5服务器即使重启后也会将jsp保留在缓存中?

时间:2014-06-11 21:20:04

标签: java html jsp caching websphere

我有一个在WebSphere v8.5服务器实例上运行的Web应用程序。我刚刚将应用程序JSP中的共享代码更新为单独的JSP,并使用以下行导入到原始JSP中:

   <%@ include file="/WEB-INF/pages/table.jsp" %>

但是,每当我对后端逻辑或此table.jsp文件进行修改时,更改都会反映在应用程序中。我已经尝试重新启动服务器并进行干净的构建,但旧的格式仍然存在。有谁知道我如何解决这个缓存或我如何阻止它继续发生?

3 个答案:

答案 0 :(得分:9)

<%@ include file="/WEB-INF/pages/table.jsp" %>是一个静态导入,因此它在编译父代之前将table.jsp文件的内容包含在父jsp中。编译父级后,对table.jsp的更改将不可见,因为父源/类不会更改。您必须更新父级上的时间戳(例如,使用触摸命令或打开并保存),以使容器知道已在包含的文件中进行了更改。

答案 1 :(得分:0)

WAS会将JSP文件缓存在profile-root / temp文件夹中。 擦除此文件夹的内容,它应该刷新新的JSP文件。

如需更持久的解决方案,请参阅此链接: https://developer.ibm.com/answers/questions/180818/how-to-resolve-jsp-caching-issue-in-websphere-appl.html

答案 2 :(得分:0)

在Java虚拟机下将此定制属性com.ibm.ws.cdi.enableCDI添加为false。这将禁用CDI并启用JSP重新加载,而无需重新启动应用程序或服务器。