我正在thebiz的hot-deploy
文件夹中开发一个新组件。
关于工作流程,当在.java
类中进行新的修改时,我从另一个终端运行组件的ant build
命令。
重建完成后,日志会通知我Controller
已重新装入我的组件。但是,所做的更改并未反映在应用程序中。
但是,有一种情况是正确地重新加载类并且应用程序行为符合修改。如果该类从未被ClassLoader
加载(它从未被访问过),则修改是可见的。这让我认为类/ jar被缓存在应用程序的某个地方并且没有考虑新的更改(因此首先完全违背了热部署的想法)。
这是实际问题还是我遗漏了别的东西。有没有办法禁用此缓存?
答案 0 :(得分:0)
OFBiz中的热部署目录不是真正的热部署,它更多的是自动部署其中的组件目录。通常使用OFBiz,大多数资源都更像脚本,通常更好的是用Groovy或简单方法脚本编写代码,然后它们会自动更新(使用默认缓存设置,生产缓存设置需要手动缓存清除在webtools webapp中。)
根据您部署OFBiz的方式,重新加载某些已编译的类通常不会起作用,因为它们在Web应用程序之间共享,因此您正在查看重新加载Web应用程序之外的类路径资源。这与使用隔离类加载器的热部署简单webapps或WAR文件的想法非常不同。