我有一个在WebSphere v8.5服务器实例上运行的Web应用程序。我刚刚将应用程序JSP中的共享代码更新为单独的JSP,并使用以下行导入到原始JSP中:
<%@ include file="/WEB-INF/pages/table.jsp" %>
但是,每当我对后端逻辑或此table.jsp文件进行修改时,更改都会反映在应用程序中。我已经尝试重新启动服务器并进行干净的构建,但旧的格式仍然存在。有谁知道我如何解决这个缓存或我如何阻止它继续发生?
答案 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重新加载,而无需重新启动应用程序或服务器。