我收到了一个奇怪的错误,当我使用辅助注射时,我无法克服这个错误:
[DEBUG] [project] - Rebinding com.gwtplatform.mvp.client.DesktopGinjector
[DEBUG] [project] - Invoking generator com.google.gwt.inject.rebind.GinjectorGenerator
[ERROR] [project] - Factory com.jorsek.editor.gin.EditorClientFactory could not be created
[ERROR] [project] - Error injecting com.jorsek.editor.gin.EditorClientFactory: Unable to create or inherit binding: No @Inject or default constructor found for com.jorsek.editor.gin.EditorClientFactory所需节点的路径:
com.projectname.client.application.resourceworkspace.ResourceWorkspacePresenter的com.projectname.client.application.resourceworkspace.ResourceWorkspacePresenter com.gwtplatform.mvp.client.gin.AbstractPresenterModule.bindPresenter(AbstractPresenterModule.java:122) -> com.jorsek.editor.gin.EditorClientFactory @Inject构造函数
下面是我如何设置所有内容:
我的工厂:
public interface EditorClientFactory {
/**
* Create a new DOMModel via assisted injection initializing the model
* with the document entity and it's DOM document content.
*
* @param document
* @param domDocument
* @return
*/
public DOMModel create(Entity document, Document domDocument);
}我的模块:
public class EditorClientModule extends AbstractGinModule {
@Override
protected void configure() {
install(new GinFactoryModuleBuilder().build(EditorClientFactory.class));
bind(DOMModel.class).to(SyncedDOMModel.class);
}
}com.jorsek.editor.impl.SyncedDOMModel:
public class SyncedDOMModel implements DOMModel {
@Inject
private SyncedDOMModel(){} /* For GIN/GUICE */
@AssistedInject
public SyncedDOMModel(CollabClient client, CollabClientFactory collabFactory, @Assisted Entity ref, @Assisted Document domDoc){
}
}这就是我试图将我的工厂注入使用的方式:
@AssistedInject
public ResourceWorkspacePresenter(final EventBus eventBus, final MyView view, final MyProxy proxy, APIService apiService, EditorClientFactory editorFactory, @Assisted EntityLocator entityLocator) {
super(eventBus, view, proxy, ApplicationPresenter.TYPE_SetMainContent);
this.editorFactory = editorFactory;
this.apiService = apiService;
System.out.println("E Locator: " + entityLocator);
}这就是我试图使用我的工厂的方式(尽管永远不会走到这一步):
editorFactory.create(doc, domDoc);有没有人知道为什么会发生这种情况?
我正在使用GWTP RC2,如果有帮助的话。
谢谢,
凯西
发布于 2013-05-01 17:07:43
你的代码不正确(我不知道它是否能解决你的问题,但这是一个开始):你不应该bind(DOMModel.class),而应该告诉工厂:
install(new GinFactoryModuleBuilder()
.implement(DOMModel.class, SyncedDOMModel.class)
.build(EditorClientFactory.class));https://stackoverflow.com/questions/16311419
复制相似问题