2

以前のプロジェクトでは、ModelGlue と ColdSpring を何年も問題なく使用してきました。CF10 ModelGlue 3.2 を使用して、この新しい Web サイトを構築しています。

フレームワークをダウンロードしてインストールし、ローカルの開発用 MacBook で問題なくサイトを構築し、それをクライアントの環境に展開しようとしました... 悪いニュースです!

彼らは IIS を使用しており、一見すると Web ルートから提供されているように見えますが、CFAdmin の IIS ブードゥーと「/」マッピングを通じて提供されます。

http://b.company.com/ ---> D:\inetpub\wwwroot\a\b\index.cfm

フレームワークの配置を見つけるためにいじった後、私は落ち着きました:

D:\inetpub\wwwroot\a\b\coldspring
D:\inetpub\wwwroot\a\b\ModelGlue

D:\inetpub\wwwroot\a\b\Application.cfc:

this.mappings['coldspring'] = expandPath('./coldspring/');
this.mappings['ModelGlue'] = expandPath('./ModelGlue/');

実行すると、ColdSpring から取得しようとする最初の Bean の MG フレームワークのインスタンス化の問題が発生します (これは定期的に変更されます)。

Could not find the ColdFusion component or interface D:\inetpub\wwwroot\ModelGlue\gesture\factory\TypeDefaultingMapBasedFactory.cfc.

ただし、問題は実際には、インスタンス化に失敗した親 Bean (拡張) から発生しています。cfc を少し変更すると、いくつかの診断結果が得られます。

<cftry>
    <!--- original line below --->
    <cfset variables.beanInstance = createObject("component", getBeanClass()) />
    <cfcatch type="any">
        <cfdump var="#expandPath(".")#" />
        <cfdump var="#getBeanClass()#" />
        <cfdump var="#cfcatch#" />
        <cfabort>
    </cfcatch>
</cftry>

収量:

D:\inetpub\wwwroot\a\b 
ModelGlue.gesture.module.XMLModuleLoaderFactory     
{error report}  

CS は を正常に見つけてインスタンス化しますD:\inetpub\wwwroot\a\b\ModelGlue\gesture\module\XMLModuleLoaderFactoryが、別のディレクトリ ( D:\inetpub\wwwroot\ModelGlue) でその親を検索します。(なじみのない方のために説明すると、XMLModuleLoaderFactoryextends="ModelGlue.gesture.factory.TypeDefaultingMapBasedFactory"はその cfc 定義の一部です。


私は機知に富んでいます。考えられるすべての構成変更を試し、ライブラリを移動したなどして、不足しました。外部の開発者として、彼らの Web サーバーを変更することはできませんが、App.cfc と以下のすべてを完全に制御できます。誰が何がうまくいかないのか考えていますか?

どんな助けでも大歓迎です。


UPDATE(おそらく解決済み)

ModelGlue のバージョンを3.1.299にロールバックしたところ、問題が解決したようです。

また、CFAdmin の「/」マッピングをオーバーライドして、アプリケーション パスを指すようにしました。

アプリケーション.cfc:

this.mappings['coldspring'] = expandPath('./coldspring/');
this.mappings['ModelGlue'] = expandPath('./ModelGlue/');
this.mappings['/'] = expandPath('.');

MG 3.2 の何が問題だったのかはよくわかりませんが、3.1.299 が役に立ったようです。

4

0 に答える 0