Ottengo la seguente eccezione quando provo a creare un WebTarget da un client Jersey.Errore durante l'utilizzo di jersey-client in osgi - Nessun generatore è stato fornito
Il mio codice
Client client = ClientBuilder.newClient();
WebTarget baseTarget = client.target("http://127.0.0.1:9000");
dello stack trace delle eccezioni
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)
quello che potrebbe essere il problema?
Ho lo stesso problema e ho tutti questi file jar nel mio classpath ma ottengo comunque l'eccezione. Ho anche notato che è presente il seguente avviso: AVVISO: Impossibile trovare un'implementazione predefinita di HK2 ServiceLocatorGenerator –
Ho riscontrato lo stesso identico problema e si è scoperto che c'era un conflitto di barattoli. Quindi, per metterlo in prospettiva, il mio runtime è OSGI in cui funzionava perfettamente, ma quando stavo cercando di eseguire il client jersey usando la semplice classe java tramite Eclipse, avrebbe generato un'eccezione. La soluzione ha funzionato per me è stato rimosso tutte le dipendenze del percorso di classe che sono state utilizzate da OSGI e ho aggiunto le librerie citate in questa risposta. Inoltre ho dovuto aggiungere le librerie Jersey Client e Jersey Common. Spero che aiuti. Vorrei che la distribuzione della maglia fosse sufficiente a raggrupparli in modo che gli sviluppatori non dovessero cercare. –
Ho dimenticato hk2-locator- *.jar che ha causato l'errore di cui sopra. Quando aggiunto il mio problema risolto. – Yergalem