Tomcat 7、Weld、RESTEasy未扫描JAR文件

3
我有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();
    }
}

我已经将一个名为beans.xml的文件添加到Web应用程序的WAR文件中(它在META-INF目录中),并且我已经将beans.xml添加到两个JAR文件中。
当我部署应用程序时,我看到以下消息:
INFO: Adding scanned resource: com.mantiso.cricket.service.CountryService

但是我没有看到JAR包中的存储库类有类似的消息。
JAR包已部署,beans.xml文件位于JAR包的META-INF目录中;我尝试向存储库类添加@ManagedBean。
我确定我错过了一些简单的东西,但是大量的搜索并没有找到很多信息。
这是Tomcat 7.0.47;Weld 2.1.0;RESTEasy 3.0.5
我还应该尝试什么?

尝试使用Jersey实现并将其与Spring集成,可以参考以下链接:http://www.mkyong.com/webservices/jax-rs/jersey-spring-integration-example/ - Mr T.
1个回答

2
答案是:Web应用程序的beans.xml文件必须在WEB-INF目录中。如果它在META-INF目录中,则不会被解析。
尽管如此,当我尝试注入到一个servlet时,它似乎可以正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接