Bir Jersey istemcisinden bir WebTarget oluşturmaya çalıştığımda aşağıdaki özel durumla karşılaşıyorum.Osgi'de jersey-client kullanılırken hata - Hayır jeneratör sağlandı
Kodum
Client client = ClientBuilder.newClient();
WebTarget baseTarget = client.target("http://127.0.0.1:9000");
İstisna yığın izleme
java.lang.IllegalStateException: No generator was provided
and there is no default generator registered
at org.glassfish.hk2.internal.ServiceLocatorFactoryImpl.internalCreate(ServiceLocatorFactoryImpl.java:266)
at org.glassfish.hk2.internal.ServiceLocatorFactoryImpl.create(ServiceLocatorFactoryImpl.java:247)
at org.glassfish.jersey.internal.inject.Injections._createLocator(Injections.java:138)
at org.glassfish.jersey.internal.inject.Injections.createLocator(Injections.java:109)
at org.glassfish.jersey.internal.RuntimeDelegateImpl.<init>(RuntimeDelegateImpl.java:61)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:374)
at javax.ws.rs.ext.FactoryFinder.newInstance(FactoryFinder.java:118)
at javax.ws.rs.ext.FactoryFinder.find(FactoryFinder.java:225)
at javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:135)
at javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:120)
at javax.ws.rs.core.UriBuilder.newInstance(UriBuilder.java:95)
at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119)
at org.glassfish.jersey.client.JerseyWebTarget.<init>(JerseyWebTarget.java:71)
at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:185)
at org.glassfish.jersey.client.JerseyClient.target(JerseyClient.java:70)
ne sorun olabilir?
Aynı sorun var ve tüm bu jar dosyaları sınıf yolumda var ama yine de istisna oluyor. Ayrıca şu uyarıyı da fark ettim: UYARI: HK2 ServiceLocatorGenerator –
'un varsayılan bir uygulaması bulunamıyor, ben aynı sorunu yaşadım ve bir kavanoz çatışması olduğu ortaya çıktı. Yani sadece perspektif içine koymak için, çalışma zamanım sadece iyi çalışıyordu ama Eclipse aracılığıyla düz java sınıfını kullanarak jarse istemci çalıştırmaya çalışırken, benim OSGI, istisna atardı. Çözüm benim için çalıştı OSGI tarafından kullanılan tüm classpath bağımlılıkları kaldırıldı ve bu cevapta belirtilen kütüphaneleri ekledim. Ayrıca Jersey Client ve Jersey Common kütüphanelerini de eklemeliydim. Umarım bu yardımcı olur. Jersey dağıtımının onları paketlemesini isterdim, böylece geliştiriciler aramak zorunda kalmazlar. –
hk2-locator- * öğesini unuttum.Yukarıdaki hataya neden olan kavanoz. Eklediğimde problemim çözüldü. – Yergalem