Микронавт не разрешает регистрировать на маршрутизаторе два контроллера из одного базового класса (реализующего интерфейс) - PullRequest
0 голосов
/ 20 ноября 2018

Похоже, что Micronaut не позволяет регистрировать на маршрутизаторе два контроллера, унаследованных от одного базового класса (который реализует интерфейс).

Вот мой упрощенный код, который выдает то же исключение: Затем я получаю это исключение:

package hello.world
import io.micronaut.http.annotation.Controller
import io.micronaut.http.annotation.Get

interface RestOperations {
    @Get("/{id}")
    fun read(id: Long): Map<String, Any?>
}

open class RestController : RestOperations {
    @Get("/{id}")
    override fun read(id: Long): Map<String, Any?> {
        return mapOf("number" to id)
    }
}

@Controller("/foo")
class FooController : RestController() {}

@Controller("/bar")
class BarController : RestController() {}

Это будет работать только для одного контроллера.Это также будет работать, если вы удалите интерфейс RestOperations из RestController.

io.micronaut.context.exceptions.DependencyInjectionException: Failed 
to inject value for parameter [router] of class: 
io.micronaut.web.router.DefaultRouter

Трассировка длинного стека, начинающаяся с Netty ..., заканчивающаяся:

Caused by: 
io.micronaut.context.exceptions.BeanInstantiationException: 
Error instantiating bean of 
type[io.micronaut.web.router.DefaultRouter]

Дайте мне знать, если у вас есть какие-либоидеи.Спасибо.

1 Ответ

0 голосов
/ 21 ноября 2018

Это действительно была ошибка и исправлена ​​для 1.0.2

...