2013-08-05 69 views
1

我有一個組件的遠程功能正受我的Application.cfc影響 - onRequestStart要求用戶登錄。我不想將.cfc移動到另一個子文件夾中 - 我想盡可能地將它保持在.cfm附近,這樣我就不必在編輯.cfm時尋找cfc。在CFCRequest似乎吃我的返回值

我認爲解決方案是使用onRequest和onCFCRequest而不是onRequestStart,但在試驗onCFCRequest時,它看起來像返回值必須是布爾值。所以現在我的遠程函數正在返回一個布爾值,而不是之前的查詢。

Rays' example顯示輸出結果,但返回結果怎麼樣?

這是我嘗試過,但ColdFusion的拒絕在返回值不是布爾:

public boolean function onCFCRequest(string cfc, string method, struct args) { 
    local.comp = createObject("component", arguments.cfc); 
    local.result = evaluate("local.comp.#arguments.method#(argumentCollection=arguments.args)"); 
    return local.result; 
} 
+0

問題是:我有另一個應用程序正在使用這個相同的遠程功能。所以用戶沒有登錄遠程功能所在的原始應用程序。我想我必須將它移到第三個子文件夾中。 –

回答

2

你的問題是這樣的斷言:

與onCFCRequest嘗試,它看起來像返回值已將 設置爲布爾型

不是這樣。

它可以(也應該)是「any」,在這種情況下,它將返回被調用方法返回的任何數據類型(串行化,因此可以在HTTP響應中傳輸)。

+0

哦,這是因爲我有公共布爾!感謝Adam! –

+0

解決我的問題的方法是,如果我擴展位於另一個子文件夾中的組件,那麼我可以在兩個不同的Application.cfcs下運行源代碼的一個副本,從而獲得兩個不同的數據源。畢竟,我並不需要在CFCRequest上搞砸。 –

相關問題