我无法正确映射特定的 ORM cfclocation。Coldfusion 正在检查我提供的 cfclocation,然后将映射缓存在不同的位置,这样当我尝试加载实体时它找不到 cfc(它在错误的文件夹中查找)。
这仅发生在我的 cfclocations 之一。我在 cf10 服务器上尝试了相同的应用程序并且它可以工作,而在另一台 cf9 服务器上它不起作用。
因此,不知何故,它对 cfc 的位置和生成不同的位置感到困惑。
我想知道的是如何调试coldfusion缓存位置的过程?我在 adobes 文档页面上阅读了 orm 架构的大纲,其中提到了冷融合生成 .hbmxml 文件。我在哪里可以找到这些?有没有另一种方法可以弄清楚为什么coldfusion认为文件位于其他地方。
(我有另一个类似的问题,我删除了这个问题,因为上一个问题是要求修复,这个问题是询问如何调试)
更新:
我已经打开 saveMapping 并且现在正在获取 hbmxml 文件。我可以看到类名生成不正确。有没有办法手动设置?有没有办法手动告诉coldfusion将位置映射为什么。我不知道为什么 Coldfusion 会将位置映射到其他地方。
以下问题的答案
实体名、名称和文件名都相同。
该文件位于一个使用相同命名约定的区域中,该命名约定对于我们所有正在运行的应用程序都是相同的。在 inetpub/resources/applications/[应用程序名称]/cfcs/orm.
我可以转储发送到 cfclocation 的地址数组,它显然就在那里。它必须是,否则文件一开始就不会被检测到。ColdFusion 和 webroot 位于不同的领域,但如前所述,这适用于我们所有其他应用程序。
我在测试不同的东西时反复重启了应用程序和 ColdFusion 服务。
hbmxml 文件指定的文件夹甚至不存在,而且从未存在。
重新启动冷融合没有效果。在通过添加更接近特定文件夹的其他映射然后删除映射来搞乱之后,我最终让该应用程序在我的本地站点上暂时运行。但是一旦我将它移到另一台服务器上,它就不起作用了。所以看起来有 99% 的机会不工作