Railo中的CFC缓存问题

时间:2013-11-05 23:06:03

标签: caching cfc railo cfml

无论我做什么,我都在缓存CFC中的特定功能时遇到问题。

以下是该方案:

通过ColdSpring在应用程序范围中实例化CFC。该网站是现场,一切都很好。 我想对这个CFC中的一个名为'productSearch'的函数进行更改。 无论我做什么,都不会有任何改变得到尊重。

我通常会重新启动应用程序以重新实例化CFC,但这没有任何区别。 我已经尝试创建一个测试页面并在本地显式实例化CFC,但它没有任何区别。 我重新启动了Railo,重新启动了Tomcat,重新启动了服务器,但没有用。

事实上,我只能 时间看到我所做的改变,如果我真的重命名这个功能。这有效的事实表明CFC文件本身没有被缓存,否则新命名的函数将不可用。

更重要的是,这只发生在生产服务器上。如果我在我的开发服务器上进行完全相同的更改,一切都按预期工作。

我以前从未见过这个,而且我有点失落。 我真的没有太多代码可以显示任何用途 - 对于测试,该函数现在包含以下内容:

<cffunction name="productSearch" access="public">
<cfdump var="#CGI#">
<cfabort>
</cffunction>

这会失败,但如果我将其重命名为'productSearch2',它就能正常工作。为了澄清,当我说'失败'时,我的意思是运行该函数,好像它根本没有改变 - 之前有各种逻辑,返回一个结构。

Railo会在任何地方存储已解析的CFC版本吗?我只是看不出这是怎么回事!

1 个答案:

答案 0 :(得分:0)

原来这个问题归结为我在我的代码中使用的方法......

我将我的组件拆分为可管理的.cfm文件,然后我使用DirectoryList文件中的CFInclude.cfc来包含这些文件

这对我来说效果非常好,但是在这个例子中,最近合并了该文件的开发版和实时版本给我留下了.orig文件 - 并且我的文件包含在{{1}中在DirectoryList版本加载后,似乎.orig被包含在组件中 - 从而覆盖了两个文件中存在的任何函数。这就是重命名功能的原因!