Java 在注入点[BackedAnnotatedField]@Inject@Default处使用限定符@Default的类型X的未满足依赖项
我的注射有问题 我已将文件缩减,以提供我所做工作的基本概述 UsersApi.java(REST服务) UsersService.javaJava 在注入点[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
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)