gpt4 book ai didi

java - 无法通过 CDI 注入(inject) HttpServletRequest

转载 作者:行者123 更新时间:2023-11-30 07:13:31 25 4
gpt4 key购买 nike

我认为我的运行配置有问题。当我尝试做时

@Context 私有(private) HttpServletRequest 请求;

我收到错误

There is more than one Bean with type javax.servlet.http.HttpServletRequestQualifiers: [@javax.ws.rs.core.Context()]
for injection into Field Injection Point, field name : request, Bean Owner : [xxx, Name:xxx, WebBeans Type:MANAGED, API Types:[java.lang.Object,xxx,xxx], Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any,javax.inject.Named]]
found beans:
HttpServletRequest, Name:null, WebBeans Type:THIRDPARTY, API Types:[javax.servlet.http.HttpServletRequest,java.lang.Object], Qualifiers:[javax.ws.rs.core.Context,javax.enterprise.inject.Any] from jar:file:/C:/enterprise-server-dozer-1.6.5/lib/servlet-api.jar!/javax/servlet/http/HttpServletRequest.class
Bean1, Name:null, WebBeans Type:THIRDPARTY, API Types:[javax.servlet.http.HttpServletRequest], Qualifiers:[javax.ws.rs.core.Context] from unknown path

如果我尝试使用

,我会收到类似的错误
javax.ws.rs.core.Request;

对于请求,错误指出在同一个 jar 文件中找到相同的 bean。就像 bean 被创建了两次一样。有什么明显的我可以检查来解决这个问题吗?

最佳答案

这里是这个

C:/enterprise-server-dozer-1.6.5/lib/servlet-api.jar

您似乎已将 Servlet API JAR 包含在您的 Web 应用程序中,这是不允许的。

Servlet API 由您的 servlet 容器提供。使用 Maven,应使用 provided 范围声明依赖项。

在您的应用程序中重复 JAR 可能会导致重复的 bean。

关于java - 无法通过 CDI 注入(inject) HttpServletRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38789563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com