2016-04-07 52 views
4

Bu yayının upvoted cevabı takip etmeye çalışıyorum: Best practice for REST token-based authentication with JAX-RS and JerseyJava Jersey'de CDI Olayları nasıl kullanılır? Ben tomcat 7 çalıştırdığınızda, ben olsun,</p> <pre><code>@Inject @AuthenticatedUser Event<String> userAuthenticatedEvent; </code></pre> <p>Ama:

Ben CDI yaklaşımı kullanıyorum ve benim filtresinde i tanım var aşağıdaki hata: Ben google bulundu şeyi denedim ve StackOverflow'daki var

org.glassfish.hk2.api.UnsatisfiedDependencyException: There was no object available for injection at SystemInjecteeImpl(requiredType=Event<String>,parent=AuthenticationFilter,qualifiers={@com.wink.rest.security.annotation.AuthenticatedUser()},position=-1,optional=false,self=false,unqualified=null,567185196) 
    at org.jvnet.hk2.internal.ThreeThirtyResolver.resolve(ThreeThirtyResolver.java:75) 
    at org.jvnet.hk2.internal.Utilities.justInject(Utilities.java:945) 
    at org.jvnet.hk2.internal.ServiceLocatorImpl.inject(ServiceLocatorImpl.java:979) 
    at org.glassfish.jersey.ext.cdi1x.internal.AbstractCdiBeanHk2Factory$2.getInstance(AbstractCdiBeanHk2Factory.java:142) 
    at org.glassfish.jersey.ext.cdi1x.internal.AbstractCdiBeanHk2Factory._provide(AbstractCdiBeanHk2Factory.java:91) 
    at org.glassfish.jersey.ext.cdi1x.internal.GenericCdiBeanHk2Factory.provide(GenericCdiBeanHk2Factory.java:63) 

bu sorunu çözmek için denemek için, ama çözümlerin hiçbiri çalıştı. Yani şimdi başka ne yapacağımı bilemiyorum. Herhangi bir tavsiyesi olan var mı?

+0

Tomcat üzerinde koşuyorsunuz diyorsunuz. Hangi CDI çalışma zamanı kullanıyorsunuz? –

+0

Ayrıca hk2 olaylarına bakmak isteyebilirsiniz: https://hk2.java.net/2.5.0-b03/events.html – jwells131313

cevap

1

Aynı sorunla uğraştıktan sonra buna bir çözüm buldum. TomCat'tan Glassfish'e geçtim ve maven bağımlılıklarını official Jersey 2 documentation'dan gelenlerle eşleştirdim. Bundan sonra sihir gibi çalıştı.