JBOSS7.2重启后JSP修改不生效问题求助
JSP修改后JBOSS未重新编译的排查方向
针对你遇到的修改JSP后替换到解压EAR、清理缓存重启JBOSS,但tmp目录下编译文件未更新、页面仍显示旧内容的问题,可从以下方向排查:
1. 确认JSP文件的实际加载路径与权限
- 全服务器搜索目标JSP文件,排查是否存在多个副本:
确认JBOSS实际加载的是你修改的find / -name "BeneficieryMaster_005.jsp"$AppHome/my.ear/myWeb.war/App_UI/下的文件,而非其他目录的旧副本。 - 检查替换后JSP文件的权限,确保JBOSS运行用户(如
user)拥有读取权限:
需保证文件的所有者/组为ls -l $AppHome/my.ear/myWeb.war/App_UI/BeneficieryMaster_005.jspuser,或具备全局读权限。
2. 检查JBOSS部署目录与配置
- 查看
standalone/data/content目录,部分JBOSS版本会将部署的EAR/WAR复制到该目录缓存,即使清理了tmp,这里的旧文件仍会被加载。搜索该目录下的目标JSP文件,若存在旧版本则删除后重启。 - 检查
standalone.xml中的部署扫描配置:
确认<deployment-scanner>节点的scan-enabled设为true,且auto-deploy-exploded开启(针对解压部署的EAR),避免JBOSS未识别到解压目录的文件变化。
3. 验证JSP编译相关配置
- 查看项目的
web.xml或jboss-web.xml,检查JSP编译参数:
若设置了development="false"且modificationTestInterval值过大,JBOSS会进入生产模式,不会主动检查JSP修改。可临时将development改为true,重启后观察是否重新编译。 - 确认JBOSS的JSP编译目录:
部分JBOSS版本会将编译后的JSP文件放在standalone/data/tmp/vfs等子目录,而非你指定的/standalone/tmp/my.ear.myWeb.war/。用以下命令搜索所有相关编译文件:
确认是否存在其他位置的旧编译文件。find /standalone -name "*BeneficieryMaster*jsp*"
4. 排查前端与代理缓存
- 强制刷新浏览器(Ctrl+F5)或使用无痕模式访问,排除浏览器缓存旧页面的可能。
- 若服务器前端有反向代理(如Nginx),清空代理服务器的缓存目录,或检查代理配置是否开启了静态资源缓存。
5. 检查文件修改时间与JBOSS日志
- 查看替换后JSP文件的修改时间,确认时间戳为最新:
若修改时间未更新,可能是替换操作未生效(如复制时使用了stat $AppHome/my.ear/myWeb.war/App_UI/BeneficieryMaster_005.jspcp -p保留旧时间戳)。 - 搜索JBOSS启动日志,查找"BeneficieryMaster"关键词,确认是否有JSP编译相关的日志记录,判断JBOSS是否处理了该文件。
6. 验证替换的JSP内容正确性
直接查看替换后的JSP文件内容,确认修改已生效:
cat $AppHome/my.ear/myWeb.war/App_UI/BeneficieryMaster_005.jsp
避免出现替换错文件、复制过程中内容丢失等低级错误。
内容的提问来源于stack exchange,提问作者Krishna
相关产品推荐
相关产品推荐

