2013-12-12 63 views
2

我有Tomcat 7.0.47,我正在託管一個REST Easy JAXRS服務。該服務使用兩個外部JAR,一個具有基礎知識庫接口和默認實現,另一個創建從基礎派生的具體知識庫(即這兩個JAR具有依賴關係)。Tomcat 7,Weld,RESTEasy無法掃描JAR

服務工作,即我可以發送請求並從數據庫中取回數據。

現在我想要做的就是注入到REST服務資源庫,要做到這一點,我已經改變了REST的代碼看起來像

@Path("/country") 
public class CountryService { 

    @Inject 
    ICountriesRepository repository; 

    @GET 
    @Produces({"application/json", "application/xml"}) 
    public List<Country> getCountries() throws NamingException, SQLException { 
     return repository.getCountries(); 
    } 
} 

我添加了一個beans.xml文件文件添加到Web應用程序的WAR文件(它位於META-INF目錄中),並將beans.xml添加到兩個JARS中。

當我部署的應用程序,我看到以下消息:

INFO: Adding scanned resource: com.mantiso.cricket.service.CountryService 

,但我沒有看到類似的消息在JAR庫類。

JAR部署; beans.xml文件位於JAR的META-INF目錄中;我已經嘗試將@ManagedBean添加到存儲庫類。

我確定我錯過了一些簡單的東西,但很多搜索都沒有出現。

這是Tomcat 7.0.47;焊接2.1.0; RESTEasy 3.0.5

我還應該嘗試什麼?

+0

嘗試使用球衣的實現,它與春天像這樣整合:http://www.mkyong.com/webservices/jax-rs/球衣 - 彈簧 - 積分 - 例如/ –

回答

1

答案是:Web應用程序的beans.xml文件必須位於WEB-INF目錄中。如果它在META-INF目錄中,那麼它不會被解析。

雖然,這也似乎工作確定,當我試圖注入一個servlet