JSF部署异常:未满足EntityManager类型的依赖关系



我只是遵循了ticket-monster教程(http://www.jboss.org/jdf/examples/ticket-monster/tutorial/Introduction/),并在我的解决方案中添加了一个rest-service类。

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加下划线,返回:"没有bean有资格被注入到注入点[JSR-299§5.2.1]"

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

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

我必须为实体管理器添加bean吗?这个应该是什么样子?教程没有提到这一点。实际上,我在最后的ticket-monster项目中找不到bean的任何定义。

EntityManager是在没有启用CDI的工件中找到的(JPA提供程序jar没有包含beans.xml)。

您可以使用"好的旧"@PersistenceContext注释代替@Inject,或者如果您想使用@Inject,您将需要为EntityManager提供一个像这样的生产者:

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

相关内容

  • 没有找到相关文章

最新更新