2015-04-23 7 views
5

Witam Mam aplikacji rozruchu sprężyny, która korzystawiosna wersja chmura Netflix Koszulka konflikt

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

zależy to od Jersey wersji 2.7.

Gdy próbuje użyć

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

To wewnętrznie używa Jersey wersji 1.1, aplikacja nie podano dwie różne wersje tej samej biblioteki.

jakichkolwiek porad w jaki sposób rozwiązać ten problem, starałem się używać tylko w wersji 2.7, ale wydaje się nie być kompatybilne każdy-inne

Dzięki

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

+1

Czy próbujesz użyć obu tych zależności w tym samym czasie? –

+0

Tak, cały mój projekt korzysta z JAX-WS do implementacji usług, a klient chmury wiosennej dla eureka używa tej samej, ale w starszej wersji. – user2818032

Odpowiedz

0

Hmm, to nie jest dobre. Jersey 1 i 2 są znacząco różne. Myślę, że jedyną dostępną opcją jest usunięcie koszulki i kodu wiosennego rozruchu i kodu do Jersey 1.1.

Warto przyjrzeć się kodowi koszulki wiosenno-rozrusznikowej koszulki, aby zobaczyć, co daje, gdy automatycznie konfiguruje elementy, co może pomóc w kodowaniu.

To bardzo niefortunne, ponieważ Spring Boot ma dać ci wyselekcjonowany, kompatybilny zestaw zależności, ale wygląda na to, że wiosna-cloud-starter-eureka nie została złożona w Spring boot, więc utkniesz przy użyciu stary interfejs API.

+0

Problem polega na tym, że eureka zależy od koszulki 1. To nie jest problem z wiosennym bootowaniem lub zarządzaniem zależnościami. – spencergibb

+0

Tak, to wydaje się być jedynym rozwiązaniem, ale bardzo podoba mi się prostota najnowszych wersji koszulki, mam niestandardowy filtr bezpieczeństwa. A także fakt, że starsza wersja koszulki nie ma wsparcia sprężynowego. – user2818032

+0

Próbowałem już klienta Consul i cierpi na ten sam problem, biorąc pod uwagę, że korzystam z niektórych bibliotek Netflix. Pech. Znalazłem klienta http dla konsulów, który używa bibliotek klienckich Apache, spróbuję, nie jest przyjazny dla chmury wiosennej, ale jest przyjazny dla wiosennych butów Przypuszczam, że to powinno wystarczyć – user2818032

3

Dostałem konfigurację z Jersey 2 i klienta Eureka wszystkim poprzez sprężyny chmurze do pracy określające:

<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> 

Jedynym problemem jest jednak, że testy nie zostały jeszcze uruchomione. Ale wciąż próbujemy znaleźć pełne rozwiązanie problemu.

0

I był ten sam problem, aż przeniesiono sprężynowania rozruchu rozrusznik-Jersey szczycie zależności. Wydaje się, że to wszystko całkowicie wyleczyć.