GWT在错误的文件中生成错误的类(ClassNotFoundException)

时间:2013-08-08 10:04:41

标签: gwt generator classnotfoundexception

我正在使用生成器在我的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应该将类文件放入错误的类中。我尝试删除生成的文件,但每次都重新执行。

顺便提一下,在错误的文件中找到的类已经在它自己的文件中正确生成了,我只能在两者中看到它,这简直是奇怪的。

1 个答案:

答案 0 :(得分:1)

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