Java 在注入点[BackedAnnotatedField]@Inject@Default处使用限定符@Default的类型X的未满足依赖项

Java 在注入点[BackedAnnotatedField]@Inject@Default处使用限定符@Default的类型X的未满足依赖项,java,dependency-injection,ejb,cdi,Java,Dependency Injection,Ejb,Cdi,我的注射有问题 我已将文件缩减,以提供我所做工作的基本概述 UsersApi.java(REST服务) UsersService.java package com.example.api; public interface UsersService { public Response userDetails(String lanId, HttpServletRequest httpServletRequest); } UsersServiceImpl.java

我的注射有问题

我已将文件缩减,以提供我所做工作的基本概述

UsersApi.java(REST服务)

UsersService.java

   package com.example.api;
    public interface  UsersService {
    public  Response userDetails(String lanId, HttpServletRequest httpServletRequest);
    }
UsersServiceImpl.java

package com.example.api.impl;
@Stateless 
public class UsersApiServiceImpl implements UsersApiService {
    @Override
    @TransactionAttribute(TransactionAttributeType.REQUIRED)
    public Response userDetails(String lanId, HttpServletRequest httpServletRequest) {
    System.out.println(lanId);
    }
}
当我在weblogic中部署ear文件时,它会抛出

Unsatisfied dependencies for type UsersService with qualifiers @Default at injection point [BackedAnnotatedField] @Inject @Default private com.example.api.UsersApi.delegate at com.example.api.UsersApi.delegate(UsersApi.java:0)

您的类路径中有
bean.xml
文件和
bean discovery mode=“none”或“annotated”
吗?是的,我有bean.xml和bean discovery mode=“all”奇怪。您可能指的是
bean.xml
,而不是
bean.xml
。我看到的一件事是您正在EJB中使用
HttpServletRequest
。实际上,Servlet技术不应该用于业务层!最好创建一些JavaBean组件并从请求中传递所需的信息,而不是传递请求本身。如果您能发布目录结构的屏幕截图,那将很有帮助。@初学者请原谅,如果我遗漏了什么,但您正在注入
UsersService
,从您的代码来看,它是一个接口(这是可以的),但您没有任何实现。至少在这里显示的代码片段中。因此,没有真正的bean可以注入。您要将其部署到哪个容器?
Unsatisfied dependencies for type UsersService with qualifiers @Default at injection point [BackedAnnotatedField] @Inject @Default private com.example.api.UsersApi.delegate at com.example.api.UsersApi.delegate(UsersApi.java:0)