Как подключить приложение Grails к Консулу через микронавт Http Client? - PullRequest
0 голосов
/ 03 мая 2019

У меня есть приложение веб-профиля Grails 3.2.0.Я хочу подключиться к отдельному приложению micronaut, которое работает нормально и правильно подключено для локального консультирования.

Вот мой контроллер micronaut:

@Controller("/test")
class TestController {

    @Get("/")
    def index(){
        return "Welcome to micronaut"
    }

    @Get("/test")

    Single<String> test() {
        return Single.just("Hello There")
    }
}

Вот мой контроллер grails:

class CardClientController {

    @Autowired
    NewCardClient newCardClient

    def index() {
        def result = newCardClient.getCards()
        respond result
    }
}

Интерфейс NewCardClient:

@Client("firstmicroservice")
public interface NewCardClient {

    @Get("/test/test")
    Single<String> getCards();

}

зависимости iя добавил в приложение Grails:

compile 'io.micronaut:inject-java:1.0.0.M1'
compile 'io.micronaut:discovery-client:1.0.0.M1'
compile 'io.micronaut:spring:1.0.0.M1'
runtime 'io.micronaut:runtime:1.0.0.M1'

Когда я нажимаю на контроллере Grails как / cardClient /, я получаю следующую ошибку:

2019-05-03 18:20:30.333 ERROR --- [nio-8200-exec-1] i.m.retry.intercept.RecoveryInterceptor  : Type [grailsmono.NewCardClient$Intercepted] executed with error: Cannot convert publisher into target type: class io.reactivex.Flowable

java.lang.UnsupportedOperationException: Cannot convert publisher into target type: class io.reactivex.Flowable
    at io.micronaut.cache.interceptor.CacheInterceptor.interceptPublisher(CacheInterceptor.java:352)
    at io.micronaut.cache.interceptor.CacheInterceptor.intercept(CacheInterceptor.java:120)
    at io.micronaut.aop.MethodInterceptor.intercept(MethodInterceptor.java:41)
    at io.micronaut.aop.chain.InterceptorChain.proceed(InterceptorChain.java:155)
    at io.micronaut.discovery.client.$CachingCompositeDiscoveryClientDefinition$Intercepted.getInstances(Unknown Source)
    at io.micronaut.discovery.client.CachingCompositeDiscoveryClient.getInstances(CachingCompositeDiscoveryClient.java:38)
    at io.micronaut.http.client.loadbalance.DiscoveryClientRoundRobinLoadBalancer.select(DiscoveryClientRoundRobinLoadBalancer.java:58)
    at io.micronaut.http.client.DefaultHttpClient.resolveRequestURI(DefaultHttpClient.java:720)
    at io.micronaut.http.client.DefaultHttpClient.exchange(DefaultHttpClient.java:410)
    at io.micronaut.http.client.DefaultHttpClient.exchange(DefaultHttpClient.java:154)
    at io.micronaut.http.client.HttpClient.retrieve(HttpClient.java:125)
    at io.micronaut.http.client.RxHttpClient.retrieve(RxHttpClient.java:60)
    at io.micronaut.http.client.RxHttpClient.retrieve(RxHttpClient.java:33)
    at io.micronaut.http.client.interceptor.HttpClientIntroductionAdvice.intercept(HttpClientIntroductionAdvice.java:331)
    at io.micronaut.aop.MethodInterceptor.intercept(MethodInterceptor.java:41)
    at io.micronaut.aop.chain.InterceptorChain.proceed(InterceptorChain.java:155)
    at io.micronaut.retry.intercept.RecoveryInterceptor.intercept(RecoveryInterceptor.java:74)
    at io.micronaut.aop.MethodInterceptor.intercept(MethodInterceptor.java:41)
    at io.micronaut.aop.chain.InterceptorChain.proceed(InterceptorChain.java:155)
    at grailsmono.NewCardClient$Intercepted.getCards(Unknown Source)
    ...

Не удалось подключиться к консулу и нетв состоянии отладить причину.Пожалуйста, помогите !!!

1 Ответ

0 голосов
/ 05 мая 2019

С помощью @JeffScottBrown мой обходной путь стал проще, просто изменив версию каждой зависимости следующим образом:

В качестве зависимости добавлен репозиторий mavenCentral ():

repositories {
    mavenLocal()
    mavenCentral()
    maven { url "https://repo.grails.org/grails/core" }

}

итребуемые зависимости от микронавтов:

compile 'io.micronaut:micronaut-inject-java:1.1.0'
compile 'io.micronaut:micronaut-discovery-client:1.1.0'
compile 'io.micronaut:micronaut-spring:1.1.0'
runtime 'io.micronaut:micronaut-runtime:1.1.0'
...