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;
...