Jakarta ee JavaEE RESTful服务字段注入

Jakarta ee JavaEE RESTful服务字段注入,jakarta-ee,cdi,wildfly,Jakarta Ee,Cdi,Wildfly,我在wildfly中部署应用程序时遇到了一个问题,该应用程序包含使用@Inject注入DAO的RESTful服务 这是尝试在wildfly中部署应用程序时日志中的错误消息: Deploying /home/john/codebase/servers/wildfly-8.2.0.Final/standalone/deployments/HouseCompetitionDashboard-1.0-SNAPSHOT.war {"JBAS014671: Failed services" => {"

我在wildfly中部署应用程序时遇到了一个问题,该应用程序包含使用@Inject注入DAO的RESTful服务

这是尝试在wildfly中部署应用程序时日志中的错误消息:

Deploying /home/john/codebase/servers/wildfly-8.2.0.Final/standalone/deployments/HouseCompetitionDashboard-1.0-SNAPSHOT.war
{"JBAS014671: Failed services" => {"jboss.deployment.unit.\"HouseCompetitionDashboard-1.0-SNAPSHOT.war\".WeldStartService" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"HouseCompetitionDashboard-1.0-SNAPSHOT.war\".WeldStartService: Failed to start service
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type DAO with qualifiers @Default
  at injection point [BackedAnnotatedField] @Inject private org.jmcdonnell.dashboard.services.PlayerService.dao
  at org.jmcdonnell.dashboard.services.PlayerService.dao(PlayerService.java:0)
"}}
这些课程看起来是这样的:

@Named
public class DAO {
}



@Stateless
@Path("player")
public class PlayerService {

    @Inject
    private DAO dao;

    @POST
    @Consumes({"application/xml", "application/json"})
    public void create(Player entity) {
        //dao.create(entity);
    }
}

稍后,DAO类将包含一个实体管理器,但目前还没有,因为我至少希望注入能够正常工作。有人有什么想法吗?

@Named
注释需要一些名称,并且名称中没有设置-它生成默认名称,但是,名称会根据bean的大小写名称生成。您需要尝试指定名称,或者使用camel大小写作为bean名称

谢谢,我不知道命名注释/驼峰案例要求。这不是真的。如果我不得不猜测,您实际上缺少一个作用域(假设您没有定义
beans.xml
,或者您的
beans.xml
表示您的bean类型的
annotated
),这不应该是真的。但在某些情况下确实如此。我认为这是一个错误的实现,因为在某些情况下我保存了类似的问题。当你不使用EL引用你的bean时,使用
@Named
是没有用的。