2013-06-04 42 views
1

我們有一個現有的ColdBox應用程序,我們沒有使用ORM,但想要啓動。找到cfc後找不到ColdFusion組件或接口錯誤

我已經從ColdBox站點啓動並運行了Orm示例應用程序,並且已經更改了application.cfc中的this.ormsettings結構以包含現有應用程序的數據源。然後,我創建了一個持久化的cfc,並在組件的屬性中爲其指定了一個表名,該名稱與db中其中一個表的屬性相匹配。我註釋了引用示例'Author'和'Book'的其他代碼,並在注入的entityService上使用了我的新代碼list(),並且在我運行頁面時,它神奇地列出了db表中的所有記錄瀏覽器,所以我知道它的工作。

然後,我從示例應用程序中將持久性cfc文件複製到我們正在嘗試檢修的現有應用程序中,在其application.cfc(和this.ormenabled = true)中添加了相同的orm設置,並添加了entityService注入元數據在我的應用程序的處理程序的頂部。我重新啓動了ColdFusion,因此它會啓動orm配置位並嘗試訪問該頁面,並且出現錯誤:Could not find the ColdFusion component or interface <the name of my cfc>

我確定它正在找到該文件,並且ormsettings中的cfclocation路徑是正確的,因爲如果我將entityService注入元數據更改爲引用某些虛假(如'Foo'),則會得到一個不同的錯誤:''無法找到具有entityname Foo的CFC。'所以我知道它找到.cfc文件本身。

堆棧跟蹤顯示錯誤發生在調用EntityNew()的第69行的system/orm/hibernate/util/CFORMUtil.cfc中。由於該文件與我可以在示例應用程序中正常運行的文件完全相同(直接複製/粘貼),所以我強烈懷疑它在應用程序級別的不同之處導致該EntityNew調用拋出該錯誤。由於EntityNew是一個ColdFusion函數,我不能介入,看看示例應用程序和我的應用程序之間出了什麼問題或不同。我確實在該行之前放置了throw(message=arguments.entity),並且在這兩個應用中,值都是相同的字符串(實體名稱來自注入元數據)。

我需要的是調查發生了什麼的一些方法,或者追蹤哪些設置可能會影響ColdFusion ORM,因爲它似乎處於該級別。

+0

你並不需要重新啓動CF,你需要'ORMReload()' – Henry

+0

我已經受夠了ORM和CFC類似的問題,所以我只是用映射來解決問題。 – BKK

+0

@Henry相關知識 - 謝謝 – jinglesthula

回答