// ...some imports
public class Menu {
final MenuMaker myClass = GWT.create(MenuMaker.class); // ERROR
我... gwt.xml:
...
<generate-with class="com.gwt.rebind.MenuGenerator">
<when-type-assignable class="com.gwt.client.MenuMaker" />
</generate-with>
...
当我在DevMode中运行编译时,所有工作都完美无缺,但当我“使用GWT编译器构建项目”时,我收到此错误:
[ERROR] Line 15: Failed to resolve 'com.gwt.client.MenuMaker' via deferred binding
Scanning for additional dependencies: jar:file:/C:/eclipse/plugins/com.google.gwt.eclipse.sdkbundle_2.4.0.v201208080121-rel-r42/gwt-2.4.0/gwt-user.jar!/com/google/gwt/dom/client/DOMImpl.java
[WARN] For the following type(s), generated source was never committed (did you forget to call commit()?)
[WARN] com.gwt.client.MenuMakerGen
[ERROR] Cannot proceed due to previous errors
com.gwt.rebind.MenuGenerator:
结束时sourceWriter.commit(logger);
我需要帮助。
答案 0 :(得分:10)
检查所有客户端类是否都有默认的零参数构造函数。我有同样的“延迟绑定”问题,结果发现我的一个类没有默认构造函数。这很奇怪,因为在GWT编译器日志中甚至没有提到这个类。
答案 1 :(得分:4)
检查gwt-compile问题。消息
[ERROR] Line 15: Failed to resolve '...' via deferred binding
可能是由gwt代码中的编译问题引起的。在我的例子中,它是一个类,它只在应用程序的服务器端可用,但在属于&#39;共享&#39;的类中被引用。部分申请。
在Java中编译得很好,所以我在eclipse中没有错误。以上错误消息仅在使用maven构建时出现。仍然有点难以找到真正的问题,因为消息文本不是很有帮助。
事实证明,在com.google.gwt.dev.DevMode上运行应用程序会产生更详细的gwt-compilation日志文件(可能有人可以配置maven来做同样的事情吗?)。 在这个更详细的日志的开头,有条目,它指出了上述问题。在纠正了这些问题之后,&#34;无法通过延期绑定解决......#-e;错误消失了。
答案 2 :(得分:1)
检查您的model
/ Pojo Class
是否implements
Serializable
interface
以及
Class
具有default
constructor
(无参数构造函数)。
答案 3 :(得分:0)
就我而言,某些模型类没有实现com.google.gwt.user.client.rpc.IsSerializable,这就是我收到问题中提到的错误的原因。
答案 4 :(得分:0)
在我的情况下,缺少与方法名称相对应的Resource Bundle属性文件中的键,添加后解决了问题。