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

问题是生成器被实例化一次,并且每次都在同一个实例上再次调用 generate 方法,因此任何属性都被有效地缓存了。我正在使用一个缓存ClassSourceFileComposerFactory实例和一个调用方法,该方法getComposer()将检查是否null,如果是,则实例化,否则return。这留下了一个缓存ClassSourceFileComposerFactory,它总是会记住相同的类。

于 2013-08-08T12:46:08.247 回答