在不重新启动ColdFusion的情况下以编程方式重新加载Java JAR 背景

在不重新启动ColdFusion的情况下以编程方式重新加载Java JAR 背景,java,coldfusion,coldfusion-10,Java,Coldfusion,Coldfusion 10,从ColdFusion 10开始,就有可能 要加载自定义Java库(或.Java文件),类似于以下内容的代码将添加到Application.cfc中 this.javaSettings = {LoadPaths = [".\java_lib\",".\java\myjar.jar"], loadColdFusionClassPath = true, reloadOnChange = false} 或要拾取更改(默认刷新时间为60秒),请添加以下内容 this.javaSetting

从ColdFusion 10开始,就有可能

要加载自定义Java库(或.Java文件),类似于以下内容的代码将添加到Application.cfc中

this.javaSettings = {LoadPaths = [".\java_lib\",".\java\myjar.jar"],
      loadColdFusionClassPath = true, reloadOnChange = false}
或要拾取更改(默认刷新时间为60秒),请添加以下内容

this.javaSettings = {LoadPaths = [".\java_lib\",".\java\myjar.jar"], 
         loadColdFusionClassPath = true, reloadOnChange = true}
问题:
对于开发来说,第二个选项很好(可能刷新时间要短得多)。对于生产环境,第一个选项是理想的,但是每次需要更改任何java代码时重新启动服务器是不可接受的。当设置了
reloadOnChange=false
时,有没有办法在不重新启动服务器的情况下触发java类的重新加载(最好是编程的)


如果说到这一点,我可能会这么做,不过如果CF10的功能仍然不能真正用于production@RichardTingle-我不确定它是否像我们所想的那么简单。。考虑到它涉及动态类装入器,可能会涉及到动态类装入器,具体取决于实现。RE:JavaLoader.cfc-上次我检查时,建议将JavaLoader存储在服务器作用域中以避免。不确定问题是否与CF10功能有关(因为它也使用动态类加载器)。每次我们需要更改任何java代码时重新启动服务器,我不是100%肯定,但是。。。IIRC它应该只需要重新启动应用程序,而不是整个服务器。你试过了吗?(我意识到这并不像您所期望的那样细粒度,但AFAIK CF不公开任何按需重新加载的方法。)