JSF部署例外:类型EntityManager的不满意依赖关系

问题描述:

我刚刚遵循了门票怪兽教程(http://www.jboss.org/jdf/examples/ticket-monster/tutorial/Introduction/),并向我的解决方案中添加了休息服务类。JSF部署例外:类型EntityManager的不满意依赖关系

package projectFoo.rest; 
import java.util.List; 
import javax.enterprise.context.RequestScoped; 
import javax.inject.Inject; 
import javax.persistence.EntityManager; 
import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

import projectFoo.model.party; 


@Path("/partys") 
@RequestScoped 
public class partyService { 

@Inject 
private EntityManager em; 

@GET 
@Produces(MediaType.APPLICATION_JSON) 
public List<party> getAllEvents() { 
    @SuppressWarnings("unchecked") 
    final List<party> results = 
      em.createQuery(
      "select e from party e order by e.name").getResultList(); 
    return results; 
} 
} 

@Inject有下划线,返回:“无豆可享有注射到注射点[JSR-299§5.2.1]”

当我尝试部署包,进程将失败并返回以下消息:

Unsatisfied dependencies for type [EntityManager] with qualifiers [@Default] at injection point. 

是否必须为Entity Manager添加一个Bean?这个应该怎么样?本教程没有提到这一点。其实我在最终的门票怪物项目中找不到任何bean的定义。

EntityManager位于未启用CDI的工件中(JPA提供商罐子没有包含beans.xml)。

您可以使用“好老” @PersistenceContext注释@Inject INSEAD,或者如果你想使用@Inject,你将需要提供这样的EntityManager的一个制片人:

class Resources { 
    @SuppressWarnings("unused") 
    @Produces 
    @PersistenceContext 
    private EntityManager em; 
...