我正在使用生成器在我的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应该将类文件放入错误的类中。我尝试删除生成的文件,但每次都重新执行。
顺便提一下,在错误的文件中找到的类已经在它自己的文件中正确生成了,我只能在两者中看到它,这简直是奇怪的。
答案 0 :(得分:1)
问题是生成器被实例化一次,并且每次在同一实例上再次调用generate方法,因此任何属性都被有效地缓存。我正在使用一个名为ClassSourceFileComposerFactory
的方法的缓存getComposer()
实例,该方法将检查null
是否实例化,否则return
。这留下了一个缓存的ClassSourceFileComposerFactory
,它总是考虑到同一个类。