2013-10-18 9 views
19

Sto utilizzando la maglia per il mio progetto e tring per analizzare un URI da una stringa.org.glassfish.jersey.internal.RuntimeDelegateImpl NON TROVATO

UriBuilder.fromUri("http://localhost:8000").build(); 

Il codice è semplice, ma ottengo un errore sotto

java.lang.ClassNotFoundException: org.glassfish.jersey.internal.RuntimeDelegateImpl 

Sembra che il programma non riesce a trovare il delegato. Ho già importato javax.ws.rs.core.UriBuilder e ho jersey-common 2.0 che dovrebbe contenere il delegato nel mio percorso di build. Ma ho ancora questo errore.

Qualcuno sa come risolvere il problema? Grazie!

risposta

45

Se stai usando Maven, utilizzare il seguente dipendenza:

<dependency> 
    <groupId>org.glassfish.jersey.core</groupId> 
    <artifactId>jersey-common</artifactId> 
    <version>2.22.2</version> 
    <scope>test</scope> 
</dependency> 

Per Gradle, il seguente funziona:

testCompile 'org.glassfish.jersey.core:jersey-common:2.22.2' 
+2

Potete spiegare perché ha bisogno di questa dipendenza –

+3

Se si guarda javax.ws.rs.ext.RuntimeDelegate # findDelegate, si vedrà che per impostazione predefinita utilizza org.glassfish.jersey.internal.RuntimeDelegateImpl. In produzione probabilmente hai qualche altra implementazione, ma questo non è disponibile per i tuoi test. –

+0

Ho rimosso alcune dipendenze cxf durante la transizione da cxf a spring-mvc. Aggiungendo la dipendenza, come hai suggerito, hai risolto il problema. – mojave

2

Nel mio caso il problema era un altro vaso in uso nominato : javax.ws.rs-api-2.0.jar

Rimuovere quel barattolo ha risolto il mio problema.

Il vaso che ho usato:

<include name="jersey-client-1.9.jar" /> 
<include name="jersey-core-1.9.jar" /> 
<include name="jersey-multipart-1.9.jar" /> 
2

Sviluppare contro un runtime wildfly 10.1 Non volevo introdurre Jersey nel mio costruisce. Con Gradle I è stato utilizzato

testRuntime "org.jboss.resteasy:resteasy-jaxrs:$versions.resteasy" 

versione resteasy è 3.0.19.Final. Questo vaso contiene

META-INF/services/javax.ws.rs.ext.RuntimeDelegate 

con una voce

org.jboss.resteasy.spi.ResteasyProviderFactory 
1
<dependency> 
    <groupId>org.glassfish.jersey.core</groupId> 
    <artifactId>jersey-common</artifactId> 
    <version>2.26</version> 
    <scope>test</scope> 
</dependency> 

mi sono imbattuto in problemi con Java 8 e jersey-common 2.22.2, ma 2.26 lavorato.