2015-06-24 98 views
0

我有兩個GWT RemoteServiceServlet在我的項目具有使用GWT框架如下彈簧自動裝配Autowired GWT RemoteServiceServlet工具類爲null

@RemoteServiceRelativePath("AuthService") 
public interface AuthService extends RemoteService { 
} 

public class AuthServiceImpl extends RemoteServiceServlet implements AuthService 
{ 
    @Autowired 
    private StoredService storeService; 
} 

@RemoteServiceRelativePath("webService") 
public interface WebService extends RemoteService 
{ 
} 

public class WebServiceImpl extends RemoteServiceServlet implements WebService 
{ 
    @Autowired 
    private LogService logService; 
} 

兩個StoreService和LogService的@Autowired的工作。但是當我嘗試在AuthService中自動裝配WebService時,它在運行時將爲空。

接口和實現分別位於不同的包中,分別是com.test.client.service和com.test.server.service。

我確認我SpringApplication-context.xml中有如下聲明:

<context:component-scan 
    base-package="com.test.client.service, com.test.server.service 
> 

也嘗試添加@服務,@Component或者@Configurable上WebServiceImpl,但仍然沒有工作。

覆蓋WebServiceImpl的init()也不起作用。

@Override 
public void init(ServletConfig config) throws ServletException { 
    super.init(config); 

    WebApplicationContextUtils.getWebApplicationContext(config.getServletContext()) 
     .getAutowireCapableBeanFactory().autowireBean(this); 
} 

這是因爲RemoteService導致自動裝配不能正常工作嗎? 任何幫助表示讚賞。

謝謝

回答

0

我使用以下內容將GWT-RPC集成到Spring中。我在6年前寫了這篇文章,從來沒有看到需要改變它。這是老派,它的工作原理。它將GWT-RPC服務建模爲Spring MVC控制器,它們就是這樣。您可以自動將任何東西裝入這些控制器。

我在一個不同的答案中提到它,所以我只會發佈一個鏈接:https://stackoverflow.com/a/30838630/4982193