gpt4 book ai didi

JSF 部署异常 : Unsatisfied dependencies for type EntityManager

转载 作者:行者123 更新时间:2023-12-04 14:14:56 28 4
gpt4 key购买 nike

我只是按照ticket-monster 教程(http://www.jboss.org/jdf/examples/ticket-monster/tutorial/Introduction/)并在我的解决方案中添加了一个休息服务类。

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 有资格注入(inject)到注入(inject)点 [JSR-299 §5.2.1]”

当我尝试部署包时,该过程将失败并返回以下消息:
Unsatisfied dependencies for type [EntityManager] with qualifiers [@Default] at injection point.

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

最佳答案

EntityManager在未启用 CDI 的 Artifact 中找到(JPA 提供程序 jar 不包含 beans.xml)。

您可以使用“好老”@PersistenceContext @Inject 中的注释,或者如果您想使用 @Inject ,您将需要像这样为 EntityManager 提供生产者:

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

关于JSF 部署异常 : Unsatisfied dependencies for type EntityManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15413227/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com