我有Tomcat 7.0.47,正在托管REST Easy JAXRS服务。该服务使用两个外部JAR,一个具有基本存储库接口和默认实现,一个用于创建从基本派生的具体存储库(即,这两个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(); } }
我已将bean.xml文件添加到Web应用程序的WAR文件中(位于META-INF目录中),并且已将bean.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; 重构3.0.5
我还应该尝试什么?
答案是:Web应用程序的beans.xml文件必须位于WEB-INF目录中。如果位于META-INF目录中,则不会对其进行解析。
虽然,当我尝试注入到servlet中时,这似乎工作正常