GWTP没有接口的默认构造函数

时间:2014-05-27 07:32:48

标签: gwt gwtp gin

有人能帮我解决问题吗?

我正在从GWT 2.5.1升级到2.6.1,并且在尝试运行项目的代码服务器时出现以下错误...

[INFO] Compiling module <SOME_MODULE>
[INFO]    Validating units:
[INFO]       Ignored 1 unit with compilation errors in first pass.
[INFO] Compile with -strict or with -logLevel set to TRACE or DEBUG to see all errors.
[INFO]    Computing all possible rebind results for 'com.gwtplatform.mvp.client.DesktopGinjector'
[INFO]       Rebinding com.gwtplatform.mvp.client.DesktopGinjector
[INFO]          Invoking generator com.google.gwt.inject.rebind.GinjectorGenerator
[INFO]             [ERROR] Error injecting com.gwtplatform.mvp.client.proxy.PlaceManager: Unable to create or inherit binding: No @Inject or default constructor found for com.gwtplatform.mvp.client.proxy.PlaceManager
[INFO]   Path to required node:
[INFO] 
[INFO] com.gwtplatform.mvp.client.proxy.PlaceManager [com.gwtplatform.mvp.client.ClientGinjector#getPlaceManager()]
[INFO] 
[...etc.]

似乎GIN延迟绑定引擎试图在接口上寻找构造函数,这当然不存在。

任何建议将不胜感激。我正在使用Maven。 http://mojo.codehaus.org/gwt-maven-plugin/

皮特

[编辑:] 此特定错误是从Gin模块配置中删除此行的结果:

install(new DefaultModule(DefaultPlaceManager.class));

该行被删除以尝试追踪类似的错误。当我知道更多时,会发布一个更好的正式答案。

3 个答案:

答案 0 :(得分:2)

如问题末尾所述,错误是由于从模块配置中删除了一条重要的行。但是,我试图修复的原始错误完全相同,所以我的解决方案可能仍然有用......

对我来说,由于泛型,代码不是GWT编译。问题是代码在IDE中编译得很好,但是GWT编译error message gets suppressed,剩下的就是编译错误的单位&#39;。

我以前找到的步骤是:

  1. 选择第一个错误并识别失败的绑定。您可能会注意到绑定失败的趋势。
  2. 转到实现(演示者/视图)并注释掉任何不重要的内容或删除父类。记住它只需要编译,它不需要运行。
  3. 运行clean + run-codeserver调试周期有望导致第一个错误消失
  4. 一旦错误消失,就开始放回原处。在我的情况下,我发现一个父类导致错误,所以我复制了整个类,并看到编译错误从&#39; 1单元&#39;到&#39; 2个单位&#39;。
  5. 缩小代码(删除或注释掉)以查找错误的代码行。
  6. 你应该能够猜到那里的错误。

答案 1 :(得分:1)

我相信你需要以某种方式绑定你的场所经理。

尝试将以下行添加到模块类中。

bind(PlaceManager.class).to(DefaultPlaceManager.class).in(Singleton.class);

答案 2 :(得分:0)

在我的情况下,问题是我在我的View类中使用了错误的HashMap实现,如下所示:

Map<String, String> map = new HashMap<String, String>();

问题在于导入的类。 我导入了正确的Map界面但错误的HashMap

进口就像:

import java.util.Map;
import com.google.gwt.dev.util.collect.HashMap;

我用以下内容替换了HashMap,它起作用了:)

import java.util.HashMap;
相关问题