2016-08-05 8 views
1

Ich denke, ich habe etwas falsch mit meiner Laufkonfiguration oder etwas. Wenn ich versuche,Kann HttpServletRequest über CDI nicht injizieren

@Context private HttpServletRequest request;

zu tun, erhalte ich die Fehler

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 

ich einen ähnlichen Fehler, wenn ich mit

javax.ws.rs.core.Request; 

mit der Bitte versuchen, Punkte, den Fehler zu finden dieselbe Bean in derselben JAR-Datei. Wie die Bohne wird zweimal erstellt. Alles offensichtliche, was ich überprüfen könnte, um das zu lösen?

+0

Ist dieser Rest? und warum nicht einfach '' '@Inject private HttpServletRequest''' verwenden – maress

Antwort

1

Dieses Bit hier

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

sieht aus wie Sie die Servlet API JAR in Ihrem Web-Anwendung enthalten haben, was nicht erlaubt ist.

Die Servlet-API wird von Ihrem Servlet-Container bereitgestellt. Mit Maven sollte die Abhängigkeit mit dem Geltungsbereich provided deklariert werden.

Wenn die JAR-Datei in Ihrer Anwendung dupliziert wurde, kann dies auf die doppelte Bean zurückzuführen sein.

Verwandte Themen