2016-11-12 3 views
0

Ich versuche, ein Jersey 2.x-Projekt zu konvertieren, das ursprünglich mit Grizzly (Embedded Glassfish) geschrieben wurde, um Grizzly nicht zu verwenden. Die App wird auf einem Jetty-Server (9.3) bereitgestellt.Verwendung von CDI mit Jersey 2.x auf Jetty

Sobald ich alle Grizzly-Referenzen losgeworden bin, meine web.xml, etc ... hinzugefügt habe, bekomme ich eine Reihe von Fehlern, dass alle meine Referenzen von @Inject nicht funktionieren.

Die ursprüngliche App verwendete Weld, um alle CDI-Stoffe zu verarbeiten; Ich hatte den Eindruck, CDI wurde in Jetty eingebaut, ist das nicht der Fall?

In meinem POM schließe ich alle Jersey Server Deps ein. Der erste Ort, an dem ich einen Fehler erhalte, ist in einer Datei, die OAuth Request Filtering durchführt ... sie implementiert ContainerRequestFilter und hat eine Annotation von @Priority (Priorities.AUTHENTICATION). Innerhalb dieser Klasse habe ich ein @Inject von einigen Klassen, um Lookups zu machen.

@Inject 
private OauthManager manager 

Wenn Jetty startet, sagt es mir, dass OauthManager nicht gefunden werden kann, um in diese Klasse zu injizieren.

Antwort

0

CDI ist nicht in Jetty integriert.

CDI wird vom Weld-Projekt bereitgestellt, das auf Jetty einwandfrei funktioniert.

Siehe vorherige Antwort auf Details zur Einrichtung.

https://stackoverflow.com/a/20505983/775715

+0

Also, ja ... ich war in der Lage die Anwendung bereitgestellt zu bekommen ... und es scheint aber zu funktionieren, wenn ich versuche, etwas für den Zugriff auf ... es mir sagt, es gibt mehr als ein @ RequestScope Kontext herumliegen ... das hat mich irgendwie buggered. –

Verwandte Themen