2014-11-25 6 views
0

나는 다음과 같은 문제가있다 :오류 주입 com.gwtplatform.dispatch.rest.client.ActionMetadataProvider

12:45:47.505 [ERROR] [cGui] Error injecting com.gwtplatform.dispatch.rest.client.ActionMetadataProvider: Unable to create or inherit binding: No @Inject or default constructor found for com.gwtplatform.dispatch.rest.client.ActionMetadataProvider 
Path to required node: 

com.gwtplatform.dispatch.rest.client.RestRequestBuilderFactory [com.gwtplatform.dispatch.rest.client.gin.RestDispatchAsyncModule.configureDispatch(RestDispatchAsyncModule.java:100)] 
->; com.gwtplatform.dispatch.rest.client.DefaultRestRequestBuilderFactory [com.gwtplatform.dispatch.rest.client.gin.RestDispatchAsyncModule.configureDispatch(RestDispatchAsyncModule.java:100)] 
->; com.gwtplatform.dispatch.rest.client.ActionMetadataProvider [@Inject constructor of com.gwtplatform.dispatch.rest.client.DefaultRestRequestBuilderFactory] 

은 내 gwt.xml

<?xml version='1.0' encoding='UTF-8'?> 
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.6.1//EN" 
    "https://raw.githubusercontent.com/gwtproject/gwt/2.6.1/distro-source/core/src/gwt-module.dtd"> 
<module rename-to="cGui"> 
<!-- Inherit the core Web Toolkit stuff. --> 
<inherits name='com.google.gwt.user.User' /> 
<inherits name='com.google.gwt.inject.Inject' /> 

<!-- Default css --> 
<inherits name='com.google.gwt.user.theme.standard.Standard' /> 
<!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> --> 
<!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> --> 

<!-- Other module inherits --> 
<inherits name='com.gwtplatform.dispatch.Dispatch' /> 
<inherits name='com.gwtplatform.mvp.MvpWithEntryPoint' /> 
<!-- <inherits name="de.barop.gwt.PushState" /> --> 

<inherits name='com.gwtplatform.dispatch.rest.DispatchRest' /> 
<inherits name="com.google.gwt.uibinder.GinUiBinder" /> 
<!-- <inherits name="com.gwtplatform.mvp.MvpWithFormFactor" /> --> 

<inherits name="com.google.gwt.query.Query" /> 
<inherits name="com.google.common.collect.Collect" /> 
<!-- <inherits name="com.googlecode.objectify.Objectify" /> --> 
<inherits name="com.gwtplatform.dispatch.rpc.DispatchRpc" /> 

<source path='client' /> 
<source path='shared' /> 

<set-configuration-property name="gin.ginjector.modules" 
    value="*CENSORED*.client.gin.ClientModule" /> 
</module> 

ClientModule.java

public class ClientModule extends AbstractPresenterModule { 

private static Logger logger = Logger.getLogger(ClientModule.class.getName()); 

@Override 
protected void configure() { 
    logger.log(Level.INFO, "Installing Client Module dependencies"); 
    install(new DefaultModule()); 
    logger.log(Level.INFO, "DefaultModule installed"); 
    install(new SecurityModule()); 
    logger.log(Level.INFO, "SecurityModule installed"); 
    install(new ApplicationModule()); 
    logger.log(Level.INFO, "ApplicationModule installed"); 
    install(new RestDispatchAsyncModule()); 
    logger.log(Level.INFO, "RestDispatchAsyncModule installed"); 
    install(new RpcDispatchAsyncModule()); 
    logger.log(Level.INFO, "RpcDispatchAsyncModule installed"); 
    // DefaultPlaceManager Places 
    bindConstant().annotatedWith(DefaultPlace.class).to(NameTokens.LOGIN); 
    bindConstant().annotatedWith(ErrorPlace.class).to(NameTokens.ERROR); 
    bindConstant().annotatedWith(UnauthorizedPlace.class).to(NameTokens.UNAUTHORIZED); 
    bindConstant().annotatedWith(RestApplicationPath.class).to("/rest"); 
    } 
} 

코드는 기반 에 ArcBees carstore 태그 1.3.1

내 의존성 : pastebin.com

은 내가 노력이 :

나는 모든 열거 확인했다 및 DTO는 직렬화

많이

봤 gwt.xml

주변에 바이올린 시도

나는 지난 5 시간 동안이 문제에 어려움을 겪어 왔습니다.

일부 파일을 첨부하는 것을 잊어 버렸거나 자세한 정보를 제공하지 않은 경우 알려주십시오. 그에 따라이 게시물을 업데이트 할 예정입니다.

답변

2

귀하의 gwt.xml에서 DispatchRest전에MvpWithEntryPoint이되어야합니다. 당신은 모든 개는이 설명으로 여기에 중요한 내용을 읽어야 할 사람 : https://github.com/ArcBees/GWTP/wiki/Rest-Dispatch#add-rest-dispatch-to-your-gwt-module

<!-- Other module inherits --> 
<inherits name='com.gwtplatform.dispatch.rpc.DispatchRpc' /> 
<inherits name='com.gwtplatform.dispatch.rest.DispatchRest' /> 
<inherits name='com.gwtplatform.mvp.MvpWithEntryPoint' /> 
<inherits name="com.google.gwt.uibinder.GinUiBinder" /> 

<extend-configuration-property name="gin.ginjector.modules" 
    value="*CENSORED*.client.gin.ClientModule" /> 

또한 Dispatch가되지 않는 모듈, 대신 DispatchRpc를 사용해야하므로.

+0

대단히 감사합니다. 설명에 대한 훌륭한 대답. :) – q99

+0

이 대답은 저를 도왔습니다. MvpWithEntryPoint뿐만 아니라 일반 com.gwtplatform.mvp.Mvp에도 적용됩니다. 포함 순서가 중요합니다. 주변을 샅샅이 뒤지는 시간을 절약 할 가능성이 있습니다. –