类型Set <Service>与限定符类型的不满意依赖关系

Sag*_*ana 6 java rest netbeans dependency-injection

我是新手,致力于创建Web服务(Restful api).遵循Java Brains for Restful Web服务的简单教程.我收到错误,上面写着"类型Set with qualifiers @Default"的不满意依赖项

我在这里搜索了不同的问题,尝试了下面的事情:

  1. 下载新服务器并将其连接到我的项目并删除旧服务器.
  2. 更新了番石榴依赖项并将其jar添加到我的项目中.

仍面临错误.

下面是服务器错误日志.

严重:加载应用程序时出现异常:CDI部署失败:WELD-001408:类型Set的不满意依赖关系注入点使用限定符@Default [BackedAnnotatedParameter] [BackedAnnotatedConstructor]参数1 @Inject com.google.common.util.concurrent.ServiceManager (设置)在com.google.common.util.concurrent.ServiceManager.(ServiceManager.java:0)org.jboss.weld.exceptions.DeploymentException:WELD-001408:类型Set的不满意依赖关系,在注入点使用限定符@Default [ BackedAnnotatedParameter] com.google.common.util.concurrent.ServiceManager中的[BackedAnnotatedConstructor] @Inject com.google.common.util.concurrent.ServiceManager(Set)的参数1.(ServiceManager.java:0)

这是提供数据的studentservice类.

public class StudentService {
    public List<Student> getAllData() {
        Student s1 = new Student(1, "Sagar", 20);
        Student s2 = new Student(2, "Puneet", 23);
        List<Student> list = new ArrayList<>();
        list.add(s1);
        list.add(s2);
        return list;
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是我的api课程

@Path("/myfirstapi")
public class MyFirstAPI {
StudentService ss=new StudentService();
@GET
@Produces(MediaType.APPLICATION_XML)
public List<Student> gettext() {
    return ss.getAllData();
    }
}
Run Code Online (Sandbox Code Playgroud)

Rou*_*boy 5

这个错误的原因通常是番石榴的坏版本.你可能有一个版本的Guava <16.你应该检查你的类路径.

我可以看到2个解决方案:

  • 如果您正在使用CDI(您似乎没有),请更新版本> = 16的Guava版本.
  • 否则禁用CDI(如果存在于类路径中则删除beans.xml并禁用应用程序服务器中的隐式扫描).