0

私はジェネレーターを使用して、GWT クライアント側アプリケーションで非常に多くのユーティリティ クラスを生成しています。

何らかの理由で、再バインド時にClassNotFoundExceotion、特定のクラスが見つからないというメッセージが表示されます。

Could not load deferred binding result type 'fr.orange.livebox.gui.businessmodelfactory.json.networks.wan.DataBinder_RoadWarriorVPN_Impl'

で生成されたクラスgenerated/fr/orange/livebox/gui/buisinessmodelfactory/json/networks/wan/を見ると、ファイルが存在することがわかりますが、その前に再バインドされた完全に異なるクラスの宣言が含まれています (前のクラスはホームページで再バインドされましたが、これは別ページです)。

なぜ GWT が間違ったクラスを含むクラス ファイルを配置する必要があるのか​​ 理解できません。生成されたファイルを削除しようとしましたが、毎回削除されます。

ちなみに、間違ったファイルで見つかったクラスは、独自のファイルで既に正しく生成されています。両方でそれを見ることができますが、これは単に奇妙です。

4

1 に答える 1

1

The problem was that a generator is instantiated once, and the generate method is called again on the same instance each time, thus any properties are effectively cached. I was using a cached ClassSourceFileComposerFactory instance with a method called getComposer() which would check if null, if it is, instantiate, otherwise return. This was leaving a cached ClassSourceFileComposerFactory which would always have the same class in mind.

于 2013-08-08T12:46:08.247 に答える