2015-04-23 11 views
5

Ciao Ho un'applicazione di avvio di primavera che utilizzaprimavera versione maglia nuvola Netflix conflitto

<dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-jersey</artifactId> 
    </dependency> 

Ciò dipende Jersey versione 2.7.

Quando si tenta di utilizzare

<dependency> 
    <groupId>org.springframework.cloud</groupId> 
    <artifactId>spring-cloud-starter-eureka</artifactId> 
</dependency> 

che utilizza internamente Jersey versione 1.1, l'applicazione non viene dato le due versioni differenti della stessa libreria.

Qualche consiglio su come risolvere questo problema, ho cercato di utilizzare solo la versione 2.7, ma sembra essere non compatibili l'un l'altro

Grazie

java.lang.NoSuchMethodError: javax.ws .rs.core.Application.getProperties() Ljava/util/Map; all'indirizzo org.glassfish.jersey.server.ApplicationHandler. (ApplicationHandler.java:303) all'indirizzo org.glassfish.jersey.server.ApplicationHandler. (ApplicationHandler.java:284) all'indirizzo org.glassfish.jersey.servlet.WebComponent. (WebComponent.java:311) all'indirizzo org.glassfish.jersey.servlet.ServletContainer.init (ServletContainer.java:168) all'indirizzo org.glassfish.jersey.servlet.ServletContainer.init (ServletContainer.java:358) presso javax .servlet.GenericServlet.init (GenericServlet.java:158) su io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed (LifecyleInterceptorInvocation.java:117) su io.undertow.servlet.core.ManagedServlet $ DefaultInstanceStrategy.start (ManagedServlet .java: 220) su io.undertow.servlet.core.ManagedServlet.get Servlet (ManagedServlet.java:163) a io.undertow.servlet.handlers.ServletHandler.handleRequest (ServletHandler.java:84) a io.undertow.servlet.handlers.FilterHandler.handleRequest (FilterHandler.java:82)

+1

Stai cercando di utilizzare entrambe queste dipendenze contemporaneamente? –

+0

Sì, tutto il mio progetto utilizza JAX-WS per l'implementazione dei servizi, e il client spring cloud per eureka utilizza la stessa versione di una versione precedente. – user2818032

risposta

0

Hmm, non va bene. Jersey 1 e 2 sono significativamente differenti. Penso che l'unica opzione che hai è quella di rimuovere il boot-starter-jersey e il codice per Jersey 1.1.

Potrebbe valere la pena guardare il codice del boot-starter-jersey per vedere cosa ti offre quando autoconfigura le cose, il che potrebbe aiutarti nella codifica.

È molto spiacevole, visto che Spring Boot dovrebbe fornire un insieme di dipendenze compatibile e compatibile, ma sembra che spring-cloud-starter-eureka non sia stato ripiegato in Spring boot, quindi sei bloccato con una vecchia API.

+0

Il problema è che eureka dipende dalla maglia 1. Questo non è un problema con l'avvio a molla o la gestione delle dipendenze. – spencergibb

+0

Sì, sembra essere l'unica soluzione, ma mi piace molto la semplicità delle ultime versioni di jersey, ho un filtro di sicurezza personalizzato. An anche il fatto che quelle versioni più vecchie della maglia non hanno supporto a molla. – user2818032

+0

Avevo provato il client Consul e soffre lo stesso problema, dato sta usando alcune librerie Netflix. Sfortuna. Ho trovato un client http per console che usa le librerie client di apache, lo proverò, non è adatto al cloud primaverile ma è compatibile con il boot di primavera suppongo che dovrebbe essere sufficiente – user2818032

3

mi hanno ottenuto la messa a punto con la maglia 2 e il client Eureka tutto attraverso la nube primavera per lavorare specificando quanto segue:

<plugin> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-maven-plugin</artifactId> 
     <configuration> 
      <excludes> 
       <exclude> 
        <groupId>javax.ws.rs</groupId> 
        <artifactId>jsr311-api</artifactId> 
       </exclude> 
      </excludes> 
     </configuration> 
    </plugin> 

L'unico problema è però che i test non sono ancora in esecuzione. Ma stiamo ancora cercando di trovare una soluzione completa al problema.

0

ho avuto lo stesso problema, finché ho spostato primavera-boot-avviatore jersey all'inizio delle dipendenze. Questo sembra curarlo completamente.

Problemi correlati