2009-06-03 6 views
0

私はRailoでテスト用のMGアプリを立ち上げようとしています。 私は私が手MGアプリ訪問したとき:Model-Glue and Railo Application.cfc

Railo 3.1.0.012 Error (Java.lang.classformaterror) 
Message   Invalid index 16 in LocalVariableTable in class file 
application_cfc$cf 
Java Stacktrace 

Invalid index 16 in LocalVariableTable in class file application_cfc 
$cf 
     at java.lang.ClassLoader.defineClass1(Native Method):-2 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:621):621 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:401):401 
     at railo.commons.lang.PhysicalClassLoader.loadClass 
(PhysicalClassLoader.java:116):116 
     at railo.runtime.PageSourceImpl.compile(PageSourceImpl.java:225):225 
     at railo.runtime.PageSourceImpl.loadPhysical(PageSourceImpl.java:167): 
167 
     at railo.runtime.PageSourceImpl.loadPage(PageSourceImpl.java:102):102 

を、私はテストのビットを行い、 Application.cfcの中で、次のときに起こることを発見した:

<cfloop from="1" to="#arrayLen(mgInstances)#" index="i"> 
    <cfset mgInstances[i].executeEvent(arguments.eventName, values) /> 
</cfloop> 

私はエラーを取得します。私はこの部分を削除した場合、私は取得を開始:

<cfset var mgInstances = createObject 
    ("component","ModelGlue.Util.ModelGlueFrameworkLocator").findInScope 
    (appScope) /> 

失敗している:

Message   Application context not loaded! 
Error Code 
org.coldspringframework.webApplicationContextProxy.cantLoadApplicationContext 

をだから、私はApplication.cfcの中で、行は推測しています。

他に問題がありますか?どんな解決策ですか?ありがとう!!!

答えて

0

私はこれをrailo bug trackerのバグとして記録します。通常、これらのバグを解決して人気のあるColdFusionフレームワークがそのプラットフォームで動作するようになっています。

5

考慮すべき大きな点:CFML言語の歴史を通して、配列を参照ではなく値渡しすることは、常に標準的な動作でした。これは、他の多くのプログラミング言語の動作に反して、言語の初期の時代からあったものですが、いつCFにコンベンションに反する問題があったのでしょうか? (例えば、0の代わりに1で番号付けを開始する配列)。

Railoは、デフォルトの動作として、ではなく、という値で配列を渡します。これが他のフレームワークでどのように問題を引き起こすかを見ることができます。この互換性の問題を解決するために、Railoでは、cfargumentタグの 'passby'属性を使用して、値または参照として任意のパラメータを指定することができます。これと同じように:もちろん

<cfargument name="myArray" type="array" required="true" passby="value" /> 

、これはこれは、Adobe ColdFusionのとの完全な互換性を壊すので、いくつかのフレームワークは、Railoのために書き換えることする必要があるとしていることを意味します。

ORMが完全今Railoに破壊された転写、ならびにこの特定の問題、ならびにRailoとCF8の間の動作の他のグリッチの結果。モデル接着剤やその他の既存のCFフレームワークにも同様の不具合が発生する可能性は低いです。

+0

この宝石をありがとう!ああ、実際には、私はRailoで走っているTransferを持っています。休止状態もあります:) ColdBoxはRailoと一緒にうまくいっています:) – user115212

+0

Transfer ORMコードの変更(またはあなたの既存の転送。xmlファイル)はRailoでTransferを実行する必要がありますか? –

5
最終Railo 3.1で

(または次のパッチの1)私たちは、あなたがRailoのデフォルトの動作としてpassby値を設定することができますRailo管理における互換性]タブを持つことになります。この設定を有効にすると、TransferとModelGlue IIIがうまく動作するようになります。ここでは、passby属性が既存のCFコードを壊さないことだけを説明します。それは単にCFARGUMENTメタデータとして扱われます。

は、私たちは正直ColdFusionでバグとしてこれを見たが、適合性要件に、私たちは、この動作を適応し、Railo Administratorで、それはオプションになります。

Gert Franz Railoオープンソース

+0

Railoにこの機能がありません(Railo 3.1.1.000最終版)​​。私はおそらくそれを見下ろすだろう。設定を調整できる場所について、より具体的な情報を提供できますか? –

関連する問題