我是创建 Web 服务(Restful api)的新手。遵循 Java Brains for Restful Web 服务的简单教程。
我收到错误,内容类似于“带有限定符@Default 的类型集的依赖关系不满足”
我在这里搜索了不同的问题,尝试了以下操作:
- 下载新服务器并将其连接到我的项目并删除旧服务器。
- 更新了 guava 依赖项并将其 jar 添加到我的项目中。
仍然面临错误。
下面是服务器错误日志。
严重:加载应用程序时出现异常:CDI 部署
失败:WELD-001408:类型集的依赖关系不满足
在注入点带有限定符 @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] 参数 1
[BackedAnnotatedConstructor] @Inject 的
com.google.common.util.concurrent.ServiceManager(设置)位于
com.google.common.util.concurrent.ServiceManager.(ServiceManager.java:0)
这是提供数据的学生服务类。
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;
}
}
下面是我的 api 类
@Path("/myfirstapi")
public class MyFirstAPI {
StudentService ss=new StudentService();
@GET
@Produces(MediaType.APPLICATION_XML)
public List<Student> gettext() {
return ss.getAllData();
}
}
导致此错误的原因通常是 Guava 版本错误。您的 Guava 版本可能
我可以看到两种解决方案:
- 如果您正在使用 CDI(您似乎没有),请更新 Guava 版本,版本 >= 16。
- 否则禁用 CDI(如果类路径中存在 beans.xml,则删除并禁用应用程序服务器中的隐式扫描)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)