1

2つの異なるCFCから1つのCFCをインスタンス化しようとすると、ColdFusionは500エラーを返します。CFCの1つをもう1つ拡張させてみましたが、問題は解決しませんでした。これは可能ですか、それとも単に間違ったことをしているだけですか?

<!--- one.cfc --->
<cfcomponent name="FirstCFC">
   <cfset this.Tools = createObject('component', 'toolbox').init()>
....
</cfcomponent>

<!--- two.cfc --->
<cfcomponent name="SecondFC">
   <cfset this.Tools = createObject('component', 'toolbox').init()>
....
</cfcomponent>

<!--- toolbox.cfc --->
<cfcomponent name="Toolbox">
   <cffunction name="init" access="public">
      <cfreturn this>
   </cffunction>

   <cffunction name="someFunc" access="public">
   </cffunction>
</cfcomponent>

これが500エラーのスクリーンショットです

ここに画像の説明を入力してください

これがより「完全な」コードサンプルです

http://pastebin.com/zJ1zpHYy

4

2 に答える 2

3

含めたJavaスタックトレースは、無限再帰エラーを示しています。疑似コンストラクターにタイプBの新しいオブジェクトがあるタイプAのオブジェクトを作成するときは注意してください。オブジェクトB自体がその疑似コンストラクターでタイプAのオブジェクトを作成する場合、作成されるオブジェクトの無限再帰があり、醜いJavaスタックトレースで終わります。

于 2012-04-23T03:24:24.943 に答える
1

ショーンは正しい。彼はさらにコードを投稿しました。two.cfcがtools.cfcを作成し、tools.cfcがtwo.cfcを作成していることがわかります。

インジェクションスタイルのセットアップ(たとえば、ColdSpring)に移行する必要があります。

于 2012-04-23T17:53:50.340 に答える